Merge: Locally disable warnings
authorJean Privat <jean@pryen.org>
Sat, 20 Dec 2014 01:24:27 +0000 (20:24 -0500)
committerJean Privat <jean@pryen.org>
Sat, 20 Dec 2014 01:24:27 +0000 (20:24 -0500)
The new annotation `no_warning`, used in module, will disable specific (or all) warnings in the module.

~~~
module lexer is no_warning("missing-doc")
module parser is no_warning("missing-doc", "unread-variable")
module toto is no_warning("all")
~~~

Note: Now there is less noise, a future PR (currently in writing) will remove a lot of warnings in the `src/` directory.

Close #774

Pull-Request: #1048
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>

1  2 
src/parser/parser.nit
src/parser/parser_abs.nit
src/parser/parser_nodes.nit
src/parser/parser_prod.nit

diff --combined src/parser/parser.nit
@@@ -1,6 -1,6 +1,6 @@@
  # Parser.
  # This file was generated by SableCC (http://www.sablecc.org/).
- module parser
+ module parser is no_warning("missing-doc", "unread-variable")
  
  intrude import parser_prod
  intrude import parser_work
@@@ -374,515 -374,548 +374,515 @@@ redef class Parse
                        new ReduceAction361(69),
                        new ReduceAction362(70),
                        new ReduceAction363(70),
 -                      new ReduceAction364(71),
 -                      new ReduceAction365(71),
 -                      new ReduceAction366(72),
 -                      new ReduceAction364(73),
 -                      new ReduceAction365(73),
 -                      new ReduceAction369(74),
 -                      new ReduceAction370(75),
 +                      new ReduceAction361(71),
 +                      new ReduceAction365(72),
 +                      new ReduceAction263(72),
 +                      new ReduceAction367(72),
 +                      new ReduceAction368(73),
 +                      new ReduceAction369(73),
 +                      new ReduceAction370(74),
 +                      new ReduceAction371(74),
 +                      new ReduceAction372(75),
 +                      new ReduceAction370(76),
                        new ReduceAction371(76),
 -                      new ReduceAction372(76),
 -                      new ReduceAction373(77),
 -                      new ReduceAction22(77),
 -                      new ReduceAction375(78),
 +                      new ReduceAction375(77),
                        new ReduceAction376(78),
                        new ReduceAction377(79),
 -                      new ReduceAction378(80),
 +                      new ReduceAction378(79),
                        new ReduceAction379(80),
 -                      new ReduceAction375(81),
 -                      new ReduceAction376(81),
 +                      new ReduceAction22(80),
 +                      new ReduceAction381(81),
                        new ReduceAction382(81),
 -                      new ReduceAction162(82),
 +                      new ReduceAction383(82),
                        new ReduceAction384(83),
 -                      new ReduceAction377(84),
 -                      new ReduceAction386(85),
 -                      new ReduceAction387(85),
 -                      new ReduceAction388(85),
 -                      new ReduceAction389(85),
 -                      new ReduceAction390(85),
 -                      new ReduceAction391(86),
 -                      new ReduceAction392(86),
 -                      new ReduceAction393(86),
 -                      new ReduceAction394(86),
 -                      new ReduceAction395(86),
 -                      new ReduceAction396(87),
 -                      new ReduceAction397(87),
 -                      new ReduceAction361(88),
 +                      new ReduceAction385(83),
 +                      new ReduceAction381(84),
 +                      new ReduceAction382(84),
 +                      new ReduceAction388(84),
 +                      new ReduceAction162(85),
 +                      new ReduceAction390(86),
 +                      new ReduceAction383(87),
 +                      new ReduceAction392(88),
 +                      new ReduceAction393(88),
 +                      new ReduceAction394(88),
 +                      new ReduceAction395(88),
 +                      new ReduceAction396(88),
 +                      new ReduceAction397(89),
 +                      new ReduceAction398(89),
                        new ReduceAction399(89),
 -                      new ReduceAction162(89),
 -                      new ReduceAction162(89),
 -                      new ReduceAction402(89),
 -                      new ReduceAction403(89),
 -                      new ReduceAction404(89),
 -                      new ReduceAction405(90),
 -                      new ReduceAction406(90),
 -                      new ReduceAction407(90),
 -                      new ReduceAction408(91),
 -                      new ReduceAction409(91),
 +                      new ReduceAction400(89),
 +                      new ReduceAction401(89),
 +                      new ReduceAction362(90),
 +                      new ReduceAction363(90),
 +                      new ReduceAction361(91),
 +                      new ReduceAction405(92),
 +                      new ReduceAction162(92),
 +                      new ReduceAction162(92),
                        new ReduceAction408(92),
 -                      new ReduceAction411(92),
                        new ReduceAction409(92),
 -                      new ReduceAction413(92),
 -                      new ReduceAction414(93),
 +                      new ReduceAction410(92),
 +                      new ReduceAction411(93),
 +                      new ReduceAction412(93),
 +                      new ReduceAction413(93),
 +                      new ReduceAction414(94),
                        new ReduceAction415(94),
 -                      new ReduceAction365(95),
 +                      new ReduceAction414(95),
                        new ReduceAction417(95),
 -                      new ReduceAction418(96),
 -                      new ReduceAction419(97),
 -                      new ReduceAction420(97),
 -                      new ReduceAction421(98),
 -                      new ReduceAction422(98),
 -                      new ReduceAction423(99),
 +                      new ReduceAction415(95),
 +                      new ReduceAction419(95),
 +                      new ReduceAction420(96),
 +                      new ReduceAction421(97),
 +                      new ReduceAction371(98),
 +                      new ReduceAction423(98),
                        new ReduceAction424(99),
 -                      new ReduceAction425(99),
 -                      new ReduceAction426(99),
 -                      new ReduceAction427(100),
 -                      new ReduceAction428(100),
 -                      new ReduceAction429(100),
 -                      new ReduceAction22(100),
 -                      new ReduceAction431(101),
 -                      new ReduceAction432(101),
 -                      new ReduceAction433(101),
 -                      new ReduceAction432(101),
 -                      new ReduceAction435(102),
 -                      new ReduceAction436(102),
 -                      new ReduceAction437(102),
 -                      new ReduceAction436(102),
 -                      new ReduceAction439(103),
 -                      new ReduceAction440(104),
 -                      new ReduceAction22(105),
 +                      new ReduceAction425(100),
 +                      new ReduceAction426(100),
 +                      new ReduceAction427(101),
 +                      new ReduceAction428(101),
 +                      new ReduceAction429(102),
 +                      new ReduceAction430(102),
 +                      new ReduceAction431(102),
 +                      new ReduceAction432(102),
 +                      new ReduceAction433(103),
 +                      new ReduceAction434(103),
 +                      new ReduceAction435(103),
 +                      new ReduceAction22(103),
 +                      new ReduceAction437(104),
 +                      new ReduceAction438(104),
 +                      new ReduceAction439(104),
 +                      new ReduceAction438(104),
 +                      new ReduceAction441(105),
                        new ReduceAction442(105),
 -                      new ReduceAction443(106),
 -                      new ReduceAction443(106),
 -                      new ReduceAction445(107),
 +                      new ReduceAction443(105),
 +                      new ReduceAction442(105),
 +                      new ReduceAction445(106),
                        new ReduceAction446(107),
 -                      new ReduceAction23(107),
                        new ReduceAction22(108),
 -                      new ReduceAction449(108),
 -                      new ReduceAction450(109),
 -                      new ReduceAction451(109),
 -                      new ReduceAction443(109),
 -                      new ReduceAction56(110),
 -                      new ReduceAction57(111),
 -                      new ReduceAction58(111),
 -                      new ReduceAction59(111),
 -                      new ReduceAction66(111),
 -                      new ReduceAction67(111),
 -                      new ReduceAction83(112),
 -                      new ReduceAction84(112),
 -                      new ReduceAction93(113),
 -                      new ReduceAction94(113),
 -                      new ReduceAction95(113),
 -                      new ReduceAction96(113),
 -                      new ReduceAction97(113),
 -                      new ReduceAction98(113),
 -                      new ReduceAction99(113),
 -                      new ReduceAction100(113),
 -                      new ReduceAction101(113),
 -                      new ReduceAction102(113),
 -                      new ReduceAction103(113),
 -                      new ReduceAction104(113),
 -                      new ReduceAction105(113),
 -                      new ReduceAction106(113),
 -                      new ReduceAction107(113),
 -                      new ReduceAction108(113),
 -                      new ReduceAction109(113),
 -                      new ReduceAction110(113),
 -                      new ReduceAction435(114),
 -                      new ReduceAction436(114),
 -                      new ReduceAction437(114),
 -                      new ReduceAction436(114),
 -                      new ReduceAction149(115),
 -                      new ReduceAction150(115),
 -                      new ReduceAction162(116),
 -                      new ReduceAction270(116),
 -                      new ReduceAction162(117),
 -                      new ReduceAction272(117),
 -                      new ReduceAction273(117),
 -                      new ReduceAction274(117),
 -                      new ReduceAction275(117),
 -                      new ReduceAction162(118),
 -                      new ReduceAction277(118),
 +                      new ReduceAction448(108),
 +                      new ReduceAction449(109),
 +                      new ReduceAction449(109),
 +                      new ReduceAction451(110),
 +                      new ReduceAction452(110),
 +                      new ReduceAction23(110),
 +                      new ReduceAction22(111),
 +                      new ReduceAction455(111),
 +                      new ReduceAction456(112),
 +                      new ReduceAction457(112),
 +                      new ReduceAction449(112),
 +                      new ReduceAction56(113),
 +                      new ReduceAction57(114),
 +                      new ReduceAction58(114),
 +                      new ReduceAction59(114),
 +                      new ReduceAction66(114),
 +                      new ReduceAction67(114),
 +                      new ReduceAction83(115),
 +                      new ReduceAction84(115),
 +                      new ReduceAction93(116),
 +                      new ReduceAction94(116),
 +                      new ReduceAction95(116),
 +                      new ReduceAction96(116),
 +                      new ReduceAction97(116),
 +                      new ReduceAction98(116),
 +                      new ReduceAction99(116),
 +                      new ReduceAction100(116),
 +                      new ReduceAction101(116),
 +                      new ReduceAction102(116),
 +                      new ReduceAction103(116),
 +                      new ReduceAction104(116),
 +                      new ReduceAction105(116),
 +                      new ReduceAction106(116),
 +                      new ReduceAction107(116),
 +                      new ReduceAction108(116),
 +                      new ReduceAction109(116),
 +                      new ReduceAction110(116),
 +                      new ReduceAction441(117),
 +                      new ReduceAction442(117),
 +                      new ReduceAction443(117),
 +                      new ReduceAction442(117),
 +                      new ReduceAction149(118),
 +                      new ReduceAction150(118),
                        new ReduceAction162(119),
 -                      new ReduceAction279(119),
 -                      new ReduceAction280(119),
 -                      new ReduceAction281(119),
 -                      new ReduceAction282(119),
 -                      new ReduceAction283(119),
 -                      new ReduceAction284(119),
 -                      new ReduceAction285(119),
 -                      new ReduceAction286(119),
 -                      new ReduceAction287(119),
 -                      new ReduceAction288(119),
 +                      new ReduceAction270(119),
                        new ReduceAction162(120),
 -                      new ReduceAction290(120),
 -                      new ReduceAction291(120),
 +                      new ReduceAction272(120),
 +                      new ReduceAction273(120),
 +                      new ReduceAction274(120),
 +                      new ReduceAction275(120),
                        new ReduceAction162(121),
 -                      new ReduceAction293(121),
 -                      new ReduceAction294(121),
 -                      new ReduceAction295(121),
 +                      new ReduceAction277(121),
                        new ReduceAction162(122),
 -                      new ReduceAction297(122),
 +                      new ReduceAction279(122),
 +                      new ReduceAction280(122),
 +                      new ReduceAction281(122),
 +                      new ReduceAction282(122),
 +                      new ReduceAction283(122),
 +                      new ReduceAction284(122),
 +                      new ReduceAction285(122),
 +                      new ReduceAction286(122),
 +                      new ReduceAction287(122),
 +                      new ReduceAction288(122),
                        new ReduceAction162(123),
 -                      new ReduceAction299(123),
 -                      new ReduceAction300(123),
 +                      new ReduceAction290(123),
 +                      new ReduceAction291(123),
                        new ReduceAction162(124),
 -                      new ReduceAction302(124),
 -                      new ReduceAction303(124),
 -                      new ReduceAction304(124),
 -                      new ReduceAction305(124),
 +                      new ReduceAction293(124),
 +                      new ReduceAction294(124),
 +                      new ReduceAction295(124),
                        new ReduceAction162(125),
 -                      new ReduceAction307(125),
 -                      new ReduceAction308(125),
 -                      new ReduceAction185(125),
 -                      new ReduceAction189(125),
 -                      new ReduceAction310(125),
 -                      new ReduceAction318(125),
 -                      new ReduceAction186(125),
 -                      new ReduceAction190(125),
 -                      new ReduceAction312(125),
 -                      new ReduceAction320(125),
 -                      new ReduceAction187(125),
 -                      new ReduceAction191(125),
 -                      new ReduceAction314(125),
 -                      new ReduceAction322(125),
 -                      new ReduceAction186(125),
 -                      new ReduceAction190(125),
 -                      new ReduceAction312(125),
 -                      new ReduceAction320(125),
 -                      new ReduceAction193(125),
 -                      new ReduceAction326(125),
 -                      new ReduceAction194(125),
 -                      new ReduceAction195(125),
 -                      new ReduceAction328(125),
 -                      new ReduceAction330(125),
 -                      new ReduceAction332(125),
 -                      new ReduceAction333(125),
 -                      new ReduceAction334(125),
 -                      new ReduceAction335(125),
 -                      new ReduceAction336(125),
 -                      new ReduceAction337(125),
 -                      new ReduceAction334(125),
 -                      new ReduceAction335(125),
 -                      new ReduceAction340(125),
 -                      new ReduceAction341(125),
 -                      new ReduceAction342(125),
 -                      new ReduceAction343(125),
 -                      new ReduceAction344(126),
 -                      new ReduceAction345(126),
 -                      new ReduceAction346(126),
 -                      new ReduceAction347(126),
 -                      new ReduceAction348(126),
 -                      new ReduceAction349(126),
 -                      new ReduceAction350(126),
 -                      new ReduceAction351(126),
 -                      new ReduceAction352(126),
 -                      new ReduceAction162(126),
 +                      new ReduceAction297(125),
                        new ReduceAction162(126),
 -                      new ReduceAction149(127),
 -                      new ReduceAction150(127),
 -                      new ReduceAction151(127),
 -                      new ReduceAction152(127),
 -                      new ReduceAction162(128),
 -                      new ReduceAction162(128),
 -                      new ReduceAction172(128),
 -                      new ReduceAction173(128),
 -                      new ReduceAction174(128),
 -                      new ReduceAction175(128),
 -                      new ReduceAction176(128),
 -                      new ReduceAction177(128),
 -                      new ReduceAction178(128),
 -                      new ReduceAction162(128),
 -                      new ReduceAction162(128),
 -                      new ReduceAction162(128),
 -                      new ReduceAction162(128),
 -                      new ReduceAction162(128),
 +                      new ReduceAction299(126),
 +                      new ReduceAction300(126),
 +                      new ReduceAction162(127),
 +                      new ReduceAction302(127),
 +                      new ReduceAction303(127),
 +                      new ReduceAction304(127),
 +                      new ReduceAction305(127),
                        new ReduceAction162(128),
 +                      new ReduceAction307(128),
 +                      new ReduceAction308(128),
                        new ReduceAction185(128),
 -                      new ReduceAction186(128),
 -                      new ReduceAction187(128),
 -                      new ReduceAction186(128),
                        new ReduceAction189(128),
 +                      new ReduceAction310(128),
 +                      new ReduceAction318(128),
 +                      new ReduceAction186(128),
                        new ReduceAction190(128),
 +                      new ReduceAction312(128),
 +                      new ReduceAction320(128),
 +                      new ReduceAction187(128),
                        new ReduceAction191(128),
 +                      new ReduceAction314(128),
 +                      new ReduceAction322(128),
 +                      new ReduceAction186(128),
                        new ReduceAction190(128),
 +                      new ReduceAction312(128),
 +                      new ReduceAction320(128),
                        new ReduceAction193(128),
 +                      new ReduceAction326(128),
                        new ReduceAction194(128),
                        new ReduceAction195(128),
 -                      new ReduceAction196(128),
 -                      new ReduceAction197(128),
 -                      new ReduceAction196(128),
 -                      new ReduceAction199(128),
 -                      new ReduceAction200(128),
 -                      new ReduceAction199(128),
 -                      new ReduceAction202(128),
 -                      new ReduceAction209(129),
 -                      new ReduceAction210(129),
 -                      new ReduceAction211(129),
 -                      new ReduceAction212(129),
 -                      new ReduceAction213(129),
 -                      new ReduceAction214(129),
 -                      new ReduceAction215(129),
 -                      new ReduceAction216(129),
 -                      new ReduceAction213(129),
 -                      new ReduceAction214(129),
 -                      new ReduceAction219(129),
 -                      new ReduceAction220(129),
 -                      new ReduceAction221(129),
 -                      new ReduceAction222(129),
 -                      new ReduceAction223(129),
 -                      new ReduceAction224(129),
 -                      new ReduceAction221(129),
 -                      new ReduceAction222(129),
 -                      new ReduceAction227(129),
 -                      new ReduceAction228(129),
 -                      new ReduceAction229(129),
 -                      new ReduceAction230(129),
 -                      new ReduceAction231(129),
 -                      new ReduceAction232(129),
 -                      new ReduceAction233(129),
 -                      new ReduceAction234(129),
 -                      new ReduceAction235(129),
 -                      new ReduceAction232(129),
 -                      new ReduceAction233(129),
 -                      new ReduceAction238(129),
 -                      new ReduceAction239(129),
 -                      new ReduceAction240(129),
 -                      new ReduceAction241(129),
 -                      new ReduceAction242(129),
 -                      new ReduceAction243(129),
 -                      new ReduceAction240(129),
 -                      new ReduceAction241(129),
 -                      new ReduceAction246(129),
 -                      new ReduceAction162(130),
 -                      new ReduceAction270(130),
 +                      new ReduceAction328(128),
 +                      new ReduceAction330(128),
 +                      new ReduceAction332(128),
 +                      new ReduceAction333(128),
 +                      new ReduceAction334(128),
 +                      new ReduceAction335(128),
 +                      new ReduceAction336(128),
 +                      new ReduceAction337(128),
 +                      new ReduceAction334(128),
 +                      new ReduceAction335(128),
 +                      new ReduceAction340(128),
 +                      new ReduceAction341(128),
 +                      new ReduceAction342(128),
 +                      new ReduceAction343(128),
 +                      new ReduceAction344(129),
 +                      new ReduceAction345(129),
 +                      new ReduceAction346(129),
 +                      new ReduceAction347(129),
 +                      new ReduceAction348(129),
 +                      new ReduceAction349(129),
 +                      new ReduceAction350(129),
 +                      new ReduceAction351(129),
 +                      new ReduceAction352(129),
 +                      new ReduceAction162(129),
 +                      new ReduceAction162(129),
 +                      new ReduceAction149(130),
 +                      new ReduceAction150(130),
 +                      new ReduceAction151(130),
 +                      new ReduceAction152(130),
 +                      new ReduceAction162(131),
 +                      new ReduceAction162(131),
 +                      new ReduceAction172(131),
 +                      new ReduceAction173(131),
 +                      new ReduceAction174(131),
 +                      new ReduceAction175(131),
 +                      new ReduceAction176(131),
 +                      new ReduceAction177(131),
 +                      new ReduceAction178(131),
 +                      new ReduceAction162(131),
                        new ReduceAction162(131),
 -                      new ReduceAction272(131),
 -                      new ReduceAction273(131),
 -                      new ReduceAction274(131),
 -                      new ReduceAction275(131),
 -                      new ReduceAction162(132),
 -                      new ReduceAction277(132),
 +                      new ReduceAction162(131),
 +                      new ReduceAction162(131),
 +                      new ReduceAction162(131),
 +                      new ReduceAction162(131),
 +                      new ReduceAction185(131),
 +                      new ReduceAction186(131),
 +                      new ReduceAction187(131),
 +                      new ReduceAction186(131),
 +                      new ReduceAction189(131),
 +                      new ReduceAction190(131),
 +                      new ReduceAction191(131),
 +                      new ReduceAction190(131),
 +                      new ReduceAction193(131),
 +                      new ReduceAction194(131),
 +                      new ReduceAction195(131),
 +                      new ReduceAction196(131),
 +                      new ReduceAction197(131),
 +                      new ReduceAction196(131),
 +                      new ReduceAction199(131),
 +                      new ReduceAction200(131),
 +                      new ReduceAction199(131),
 +                      new ReduceAction202(131),
 +                      new ReduceAction209(132),
 +                      new ReduceAction210(132),
 +                      new ReduceAction211(132),
 +                      new ReduceAction212(132),
 +                      new ReduceAction213(132),
 +                      new ReduceAction214(132),
 +                      new ReduceAction215(132),
 +                      new ReduceAction216(132),
 +                      new ReduceAction213(132),
 +                      new ReduceAction214(132),
 +                      new ReduceAction219(132),
 +                      new ReduceAction220(132),
 +                      new ReduceAction221(132),
 +                      new ReduceAction222(132),
 +                      new ReduceAction223(132),
 +                      new ReduceAction224(132),
 +                      new ReduceAction221(132),
 +                      new ReduceAction222(132),
 +                      new ReduceAction227(132),
 +                      new ReduceAction228(132),
 +                      new ReduceAction229(132),
 +                      new ReduceAction230(132),
 +                      new ReduceAction231(132),
 +                      new ReduceAction232(132),
 +                      new ReduceAction233(132),
 +                      new ReduceAction234(132),
 +                      new ReduceAction235(132),
 +                      new ReduceAction232(132),
 +                      new ReduceAction233(132),
 +                      new ReduceAction238(132),
 +                      new ReduceAction239(132),
 +                      new ReduceAction240(132),
 +                      new ReduceAction241(132),
 +                      new ReduceAction242(132),
 +                      new ReduceAction243(132),
 +                      new ReduceAction240(132),
 +                      new ReduceAction241(132),
 +                      new ReduceAction246(132),
                        new ReduceAction162(133),
 -                      new ReduceAction279(133),
 -                      new ReduceAction280(133),
 -                      new ReduceAction281(133),
 -                      new ReduceAction282(133),
 -                      new ReduceAction283(133),
 -                      new ReduceAction284(133),
 -                      new ReduceAction285(133),
 -                      new ReduceAction286(133),
 -                      new ReduceAction287(133),
 -                      new ReduceAction288(133),
 +                      new ReduceAction270(133),
                        new ReduceAction162(134),
 -                      new ReduceAction290(134),
 -                      new ReduceAction291(134),
 +                      new ReduceAction272(134),
 +                      new ReduceAction273(134),
 +                      new ReduceAction274(134),
 +                      new ReduceAction275(134),
                        new ReduceAction162(135),
 -                      new ReduceAction293(135),
 -                      new ReduceAction294(135),
 -                      new ReduceAction295(135),
 +                      new ReduceAction277(135),
                        new ReduceAction162(136),
 -                      new ReduceAction297(136),
 +                      new ReduceAction279(136),
 +                      new ReduceAction280(136),
 +                      new ReduceAction281(136),
 +                      new ReduceAction282(136),
 +                      new ReduceAction283(136),
 +                      new ReduceAction284(136),
 +                      new ReduceAction285(136),
 +                      new ReduceAction286(136),
 +                      new ReduceAction287(136),
 +                      new ReduceAction288(136),
                        new ReduceAction162(137),
 -                      new ReduceAction299(137),
 -                      new ReduceAction300(137),
 +                      new ReduceAction290(137),
 +                      new ReduceAction291(137),
                        new ReduceAction162(138),
 -                      new ReduceAction302(138),
 -                      new ReduceAction303(138),
 -                      new ReduceAction304(138),
 -                      new ReduceAction305(138),
 +                      new ReduceAction293(138),
 +                      new ReduceAction294(138),
 +                      new ReduceAction295(138),
                        new ReduceAction162(139),
 -                      new ReduceAction307(139),
 -                      new ReduceAction308(139),
 -                      new ReduceAction185(139),
 -                      new ReduceAction310(139),
 -                      new ReduceAction186(139),
 -                      new ReduceAction312(139),
 -                      new ReduceAction187(139),
 -                      new ReduceAction314(139),
 -                      new ReduceAction186(139),
 -                      new ReduceAction312(139),
 -                      new ReduceAction189(139),
 -                      new ReduceAction318(139),
 -                      new ReduceAction190(139),
 -                      new ReduceAction320(139),
 -                      new ReduceAction191(139),
 -                      new ReduceAction322(139),
 -                      new ReduceAction190(139),
 -                      new ReduceAction320(139),
 -                      new ReduceAction193(139),
 -                      new ReduceAction326(139),
 -                      new ReduceAction194(139),
 -                      new ReduceAction328(139),
 -                      new ReduceAction195(139),
 -                      new ReduceAction330(139),
 -                      new ReduceAction331(139),
 -                      new ReduceAction332(139),
 -                      new ReduceAction333(139),
 -                      new ReduceAction334(139),
 -                      new ReduceAction335(139),
 -                      new ReduceAction336(139),
 -                      new ReduceAction337(139),
 -                      new ReduceAction334(139),
 -                      new ReduceAction335(139),
 -                      new ReduceAction340(139),
 -                      new ReduceAction341(139),
 -                      new ReduceAction342(139),
 -                      new ReduceAction343(139),
 -                      new ReduceAction344(140),
 -                      new ReduceAction345(140),
 -                      new ReduceAction346(140),
 -                      new ReduceAction347(140),
 -                      new ReduceAction348(140),
 -                      new ReduceAction349(140),
 -                      new ReduceAction350(140),
 -                      new ReduceAction351(140),
 -                      new ReduceAction352(140),
 +                      new ReduceAction297(139),
                        new ReduceAction162(140),
 -                      new ReduceAction371(141),
 -                      new ReduceAction372(141),
 -                      new ReduceAction373(142),
 -                      new ReduceAction22(142),
 -                      new ReduceAction375(143),
 -                      new ReduceAction375(144),
 -                      new ReduceAction396(145),
 -                      new ReduceAction397(145),
 -                      new ReduceAction399(146),
 -                      new ReduceAction162(146),
 -                      new ReduceAction162(146),
 -                      new ReduceAction402(146),
 -                      new ReduceAction403(146),
 -                      new ReduceAction149(147),
 -                      new ReduceAction150(147),
 -                      new ReduceAction162(148),
 -                      new ReduceAction270(148),
 +                      new ReduceAction299(140),
 +                      new ReduceAction300(140),
 +                      new ReduceAction162(141),
 +                      new ReduceAction302(141),
 +                      new ReduceAction303(141),
 +                      new ReduceAction304(141),
 +                      new ReduceAction305(141),
 +                      new ReduceAction162(142),
 +                      new ReduceAction307(142),
 +                      new ReduceAction308(142),
 +                      new ReduceAction185(142),
 +                      new ReduceAction310(142),
 +                      new ReduceAction186(142),
 +                      new ReduceAction312(142),
 +                      new ReduceAction187(142),
 +                      new ReduceAction314(142),
 +                      new ReduceAction186(142),
 +                      new ReduceAction312(142),
 +                      new ReduceAction189(142),
 +                      new ReduceAction318(142),
 +                      new ReduceAction190(142),
 +                      new ReduceAction320(142),
 +                      new ReduceAction191(142),
 +                      new ReduceAction322(142),
 +                      new ReduceAction190(142),
 +                      new ReduceAction320(142),
 +                      new ReduceAction193(142),
 +                      new ReduceAction326(142),
 +                      new ReduceAction194(142),
 +                      new ReduceAction328(142),
 +                      new ReduceAction195(142),
 +                      new ReduceAction330(142),
 +                      new ReduceAction331(142),
 +                      new ReduceAction332(142),
 +                      new ReduceAction333(142),
 +                      new ReduceAction334(142),
 +                      new ReduceAction335(142),
 +                      new ReduceAction336(142),
 +                      new ReduceAction337(142),
 +                      new ReduceAction334(142),
 +                      new ReduceAction335(142),
 +                      new ReduceAction340(142),
 +                      new ReduceAction341(142),
 +                      new ReduceAction342(142),
 +                      new ReduceAction343(142),
 +                      new ReduceAction344(143),
 +                      new ReduceAction345(143),
 +                      new ReduceAction346(143),
 +                      new ReduceAction347(143),
 +                      new ReduceAction348(143),
 +                      new ReduceAction349(143),
 +                      new ReduceAction350(143),
 +                      new ReduceAction351(143),
 +                      new ReduceAction352(143),
 +                      new ReduceAction162(143),
 +                      new ReduceAction377(144),
 +                      new ReduceAction378(144),
 +                      new ReduceAction379(145),
 +                      new ReduceAction22(145),
 +                      new ReduceAction381(146),
 +                      new ReduceAction381(147),
 +                      new ReduceAction362(148),
 +                      new ReduceAction363(148),
 +                      new ReduceAction405(149),
 +                      new ReduceAction162(149),
                        new ReduceAction162(149),
 -                      new ReduceAction272(149),
 -                      new ReduceAction273(149),
 -                      new ReduceAction274(149),
 -                      new ReduceAction275(149),
 -                      new ReduceAction162(150),
 -                      new ReduceAction277(150),
 +                      new ReduceAction408(149),
 +                      new ReduceAction409(149),
 +                      new ReduceAction149(150),
 +                      new ReduceAction150(150),
                        new ReduceAction162(151),
 -                      new ReduceAction279(151),
 -                      new ReduceAction280(151),
 -                      new ReduceAction281(151),
 -                      new ReduceAction282(151),
 -                      new ReduceAction283(151),
 -                      new ReduceAction284(151),
 -                      new ReduceAction285(151),
 -                      new ReduceAction286(151),
 -                      new ReduceAction287(151),
 -                      new ReduceAction288(151),
 +                      new ReduceAction270(151),
                        new ReduceAction162(152),
 -                      new ReduceAction290(152),
 -                      new ReduceAction291(152),
 +                      new ReduceAction272(152),
 +                      new ReduceAction273(152),
 +                      new ReduceAction274(152),
 +                      new ReduceAction275(152),
                        new ReduceAction162(153),
 -                      new ReduceAction293(153),
 -                      new ReduceAction294(153),
 -                      new ReduceAction295(153),
 +                      new ReduceAction277(153),
                        new ReduceAction162(154),
 -                      new ReduceAction297(154),
 +                      new ReduceAction279(154),
 +                      new ReduceAction280(154),
 +                      new ReduceAction281(154),
 +                      new ReduceAction282(154),
 +                      new ReduceAction283(154),
 +                      new ReduceAction284(154),
 +                      new ReduceAction285(154),
 +                      new ReduceAction286(154),
 +                      new ReduceAction287(154),
 +                      new ReduceAction288(154),
                        new ReduceAction162(155),
 -                      new ReduceAction299(155),
 -                      new ReduceAction300(155),
 +                      new ReduceAction290(155),
 +                      new ReduceAction291(155),
                        new ReduceAction162(156),
 -                      new ReduceAction302(156),
 -                      new ReduceAction303(156),
 -                      new ReduceAction780(156),
 +                      new ReduceAction293(156),
 +                      new ReduceAction294(156),
 +                      new ReduceAction295(156),
                        new ReduceAction162(157),
 -                      new ReduceAction782(157),
 -                      new ReduceAction783(157),
 -                      new ReduceAction784(157),
 -                      new ReduceAction785(157),
 -                      new ReduceAction786(157),
 -                      new ReduceAction185(157),
 -                      new ReduceAction310(157),
 -                      new ReduceAction785(157),
 -                      new ReduceAction786(157),
 -                      new ReduceAction193(157),
 -                      new ReduceAction326(157),
 -                      new ReduceAction793(157),
 -                      new ReduceAction794(157),
 -                      new ReduceAction332(157),
 -                      new ReduceAction333(157),
 -                      new ReduceAction334(157),
 -                      new ReduceAction335(157),
 -                      new ReduceAction336(157),
 -                      new ReduceAction337(157),
 -                      new ReduceAction334(157),
 -                      new ReduceAction335(157),
 -                      new ReduceAction340(157),
 -                      new ReduceAction341(157),
 -                      new ReduceAction342(157),
 -                      new ReduceAction343(157),
 -                      new ReduceAction344(158),
 -                      new ReduceAction345(158),
 -                      new ReduceAction346(158),
 -                      new ReduceAction347(158),
 -                      new ReduceAction348(158),
 -                      new ReduceAction349(158),
 -                      new ReduceAction350(158),
 -                      new ReduceAction351(158),
 -                      new ReduceAction352(158),
 +                      new ReduceAction297(157),
                        new ReduceAction162(158),
 -                      new ReduceAction817(159),
 -                      new ReduceAction818(159),
 -                      new ReduceAction159(160),
 -                      new ReduceAction160(160),
 -                      new ReduceAction161(160),
 +                      new ReduceAction299(158),
 +                      new ReduceAction300(158),
 +                      new ReduceAction162(159),
 +                      new ReduceAction302(159),
 +                      new ReduceAction303(159),
 +                      new ReduceAction786(159),
                        new ReduceAction162(160),
 +                      new ReduceAction788(160),
 +                      new ReduceAction789(160),
 +                      new ReduceAction790(160),
 +                      new ReduceAction791(160),
 +                      new ReduceAction792(160),
 +                      new ReduceAction185(160),
 +                      new ReduceAction310(160),
 +                      new ReduceAction791(160),
 +                      new ReduceAction792(160),
 +                      new ReduceAction193(160),
 +                      new ReduceAction326(160),
 +                      new ReduceAction799(160),
 +                      new ReduceAction800(160),
 +                      new ReduceAction332(160),
 +                      new ReduceAction333(160),
 +                      new ReduceAction334(160),
 +                      new ReduceAction335(160),
 +                      new ReduceAction336(160),
 +                      new ReduceAction337(160),
 +                      new ReduceAction334(160),
 +                      new ReduceAction335(160),
 +                      new ReduceAction340(160),
 +                      new ReduceAction341(160),
 +                      new ReduceAction342(160),
 +                      new ReduceAction343(160),
 +                      new ReduceAction344(161),
 +                      new ReduceAction345(161),
 +                      new ReduceAction346(161),
 +                      new ReduceAction347(161),
 +                      new ReduceAction348(161),
 +                      new ReduceAction349(161),
 +                      new ReduceAction350(161),
 +                      new ReduceAction351(161),
 +                      new ReduceAction352(161),
                        new ReduceAction162(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction172(161),
 -                      new ReduceAction173(161),
 -                      new ReduceAction174(161),
 -                      new ReduceAction175(161),
 -                      new ReduceAction176(161),
 -                      new ReduceAction177(161),
 -                      new ReduceAction178(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction162(161),
 -                      new ReduceAction185(161),
 -                      new ReduceAction186(161),
 -                      new ReduceAction187(161),
 -                      new ReduceAction186(161),
 -                      new ReduceAction189(161),
 -                      new ReduceAction190(161),
 -                      new ReduceAction191(161),
 -                      new ReduceAction190(161),
 -                      new ReduceAction193(161),
 -                      new ReduceAction194(161),
 -                      new ReduceAction195(161),
 -                      new ReduceAction196(161),
 -                      new ReduceAction197(161),
 -                      new ReduceAction196(161),
 -                      new ReduceAction199(161),
 -                      new ReduceAction200(161),
 -                      new ReduceAction199(161),
 -                      new ReduceAction202(161),
 -                      new ReduceAction249(162),
 -                      new ReduceAction250(162),
 -                      new ReduceAction251(163),
 -                      new ReduceAction258(164),
 -                      new ReduceAction259(164),
 -                      new ReduceAction260(165),
 -                      new ReduceAction261(165),
 -                      new ReduceAction262(166),
 -                      new ReduceAction263(166),
 -                      new ReduceAction264(167),
 -                      new ReduceAction265(167),
 -                      new ReduceAction162(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction172(168),
 -                      new ReduceAction173(168),
 -                      new ReduceAction174(168),
 -                      new ReduceAction175(168),
 -                      new ReduceAction176(168),
 -                      new ReduceAction177(168),
 -                      new ReduceAction178(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction162(168),
 -                      new ReduceAction185(168),
 -                      new ReduceAction186(168),
 -                      new ReduceAction187(168),
 -                      new ReduceAction186(168),
 -                      new ReduceAction189(168),
 -                      new ReduceAction190(168),
 -                      new ReduceAction191(168),
 -                      new ReduceAction190(168),
 -                      new ReduceAction193(168),
 -                      new ReduceAction194(168),
 -                      new ReduceAction195(168),
 -                      new ReduceAction196(168),
 -                      new ReduceAction197(168),
 -                      new ReduceAction196(168),
 -                      new ReduceAction199(168),
 -                      new ReduceAction200(168),
 -                      new ReduceAction199(168),
 -                      new ReduceAction202(168),
 -                      new ReduceAction159(169),
 -                      new ReduceAction160(169),
 -                      new ReduceAction161(169),
 -                      new ReduceAction159(170),
 -                      new ReduceAction160(170),
 -                      new ReduceAction161(170),
 +                      new ReduceAction823(162),
 +                      new ReduceAction824(162),
 +                      new ReduceAction159(163),
 +                      new ReduceAction160(163),
 +                      new ReduceAction161(163),
 +                      new ReduceAction162(163),
 +                      new ReduceAction162(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction172(164),
 +                      new ReduceAction173(164),
 +                      new ReduceAction174(164),
 +                      new ReduceAction175(164),
 +                      new ReduceAction176(164),
 +                      new ReduceAction177(164),
 +                      new ReduceAction178(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction162(164),
 +                      new ReduceAction185(164),
 +                      new ReduceAction186(164),
 +                      new ReduceAction187(164),
 +                      new ReduceAction186(164),
 +                      new ReduceAction189(164),
 +                      new ReduceAction190(164),
 +                      new ReduceAction191(164),
 +                      new ReduceAction190(164),
 +                      new ReduceAction193(164),
 +                      new ReduceAction194(164),
 +                      new ReduceAction195(164),
 +                      new ReduceAction196(164),
 +                      new ReduceAction197(164),
 +                      new ReduceAction196(164),
 +                      new ReduceAction199(164),
 +                      new ReduceAction200(164),
 +                      new ReduceAction199(164),
 +                      new ReduceAction202(164),
 +                      new ReduceAction249(165),
 +                      new ReduceAction250(165),
 +                      new ReduceAction251(166),
 +                      new ReduceAction258(167),
 +                      new ReduceAction259(167),
 +                      new ReduceAction260(168),
 +                      new ReduceAction261(168),
 +                      new ReduceAction262(169),
 +                      new ReduceAction263(169),
 +                      new ReduceAction264(170),
 +                      new ReduceAction265(170),
                        new ReduceAction162(171),
                        new ReduceAction162(171),
                        new ReduceAction172(171),
                        new ReduceAction162(171),
                        new ReduceAction162(171),
                        new ReduceAction162(171),
 +                      new ReduceAction162(171),
 +                      new ReduceAction185(171),
 +                      new ReduceAction186(171),
 +                      new ReduceAction187(171),
 +                      new ReduceAction186(171),
 +                      new ReduceAction189(171),
 +                      new ReduceAction190(171),
 +                      new ReduceAction191(171),
 +                      new ReduceAction190(171),
 +                      new ReduceAction193(171),
 +                      new ReduceAction194(171),
 +                      new ReduceAction195(171),
 +                      new ReduceAction196(171),
 +                      new ReduceAction197(171),
 +                      new ReduceAction196(171),
 +                      new ReduceAction199(171),
 +                      new ReduceAction200(171),
 +                      new ReduceAction199(171),
                        new ReduceAction202(171),
 -                      new ReduceAction162(172),
 -                      new ReduceAction162(172),
 -                      new ReduceAction172(172),
 -                      new ReduceAction173(172),
 -                      new ReduceAction174(172),
 -                      new ReduceAction175(172),
 -                      new ReduceAction176(172),
 -                      new ReduceAction177(172),
 -                      new ReduceAction178(172),
 -                      new ReduceAction162(172),
 -                      new ReduceAction162(172),
 -                      new ReduceAction162(172),
 -                      new ReduceAction162(172),
 -                      new ReduceAction162(172),
 -                      new ReduceAction202(172),
 -                      new ReduceAction162(173),
 -                      new ReduceAction162(173),
 -                      new ReduceAction172(173),
 -                      new ReduceAction173(173),
 -                      new ReduceAction174(173),
 -                      new ReduceAction175(173),
 -                      new ReduceAction176(173),
 -                      new ReduceAction177(173),
 -                      new ReduceAction178(173),
 -                      new ReduceAction162(173),
 -                      new ReduceAction162(173),
 -                      new ReduceAction162(173),
 -                      new ReduceAction162(173),
 -                      new ReduceAction162(173),
 -                      new ReduceAction202(173),
 +                      new ReduceAction159(172),
 +                      new ReduceAction160(172),
 +                      new ReduceAction161(172),
 +                      new ReduceAction159(173),
 +                      new ReduceAction160(173),
 +                      new ReduceAction161(173),
                        new ReduceAction162(174),
                        new ReduceAction162(174),
                        new ReduceAction172(174),
                        new ReduceAction162(174),
                        new ReduceAction162(174),
                        new ReduceAction202(174),
 -                      new ReduceAction405(175),
 -                      new ReduceAction407(175),
 -                      new ReduceAction968(176),
 -                      new ReduceAction969(176),
 -                      new ReduceAction970(177),
 -                      new ReduceAction971(177),
 -                      new ReduceAction972(178),
 -                      new ReduceAction973(178),
 +                      new ReduceAction162(175),
 +                      new ReduceAction162(175),
 +                      new ReduceAction172(175),
 +                      new ReduceAction173(175),
 +                      new ReduceAction174(175),
 +                      new ReduceAction175(175),
 +                      new ReduceAction176(175),
 +                      new ReduceAction177(175),
 +                      new ReduceAction178(175),
 +                      new ReduceAction162(175),
 +                      new ReduceAction162(175),
 +                      new ReduceAction162(175),
 +                      new ReduceAction162(175),
 +                      new ReduceAction162(175),
 +                      new ReduceAction202(175),
 +                      new ReduceAction162(176),
 +                      new ReduceAction162(176),
 +                      new ReduceAction172(176),
 +                      new ReduceAction173(176),
 +                      new ReduceAction174(176),
 +                      new ReduceAction175(176),
 +                      new ReduceAction176(176),
 +                      new ReduceAction177(176),
 +                      new ReduceAction178(176),
 +                      new ReduceAction162(176),
 +                      new ReduceAction162(176),
 +                      new ReduceAction162(176),
 +                      new ReduceAction162(176),
 +                      new ReduceAction162(176),
 +                      new ReduceAction202(176),
 +                      new ReduceAction162(177),
 +                      new ReduceAction162(177),
 +                      new ReduceAction172(177),
 +                      new ReduceAction173(177),
 +                      new ReduceAction174(177),
 +                      new ReduceAction175(177),
 +                      new ReduceAction176(177),
 +                      new ReduceAction177(177),
 +                      new ReduceAction178(177),
 +                      new ReduceAction162(177),
 +                      new ReduceAction162(177),
 +                      new ReduceAction162(177),
 +                      new ReduceAction162(177),
 +                      new ReduceAction162(177),
 +                      new ReduceAction202(177),
 +                      new ReduceAction411(178),
 +                      new ReduceAction413(178),
                        new ReduceAction974(179),
                        new ReduceAction975(179),
                        new ReduceAction976(180),
                        new ReduceAction981(182),
                        new ReduceAction982(183),
                        new ReduceAction983(183),
 -                      new ReduceAction153(184),
 +                      new ReduceAction984(184),
                        new ReduceAction985(184),
 -                      new ReduceAction396(185),
 +                      new ReduceAction986(185),
                        new ReduceAction987(185),
 -                      new ReduceAction396(186),
 -                      new ReduceAction987(186),
 -                      new ReduceAction420(187),
 +                      new ReduceAction988(186),
 +                      new ReduceAction989(186),
 +                      new ReduceAction153(187),
                        new ReduceAction991(187),
 -                      new ReduceAction378(188),
 +                      new ReduceAction362(188),
                        new ReduceAction993(188),
 -                      new ReduceAction378(189),
 +                      new ReduceAction362(189),
                        new ReduceAction993(189),
 -                      new ReduceAction378(190),
 +                      new ReduceAction362(190),
                        new ReduceAction993(190),
 -                      new ReduceAction396(191),
 -                      new ReduceAction987(191),
 -                      new ReduceAction396(192),
 -                      new ReduceAction987(192),
 -                      new ReduceAction421(193),
 -                      new ReduceAction1003(193),
 -                      new ReduceAction1004(194),
 -                      new ReduceAction1005(194),
 -                      new ReduceAction1006(195),
 -                      new ReduceAction1007(195)
 +                      new ReduceAction426(191),
 +                      new ReduceAction999(191),
 +                      new ReduceAction384(192),
 +                      new ReduceAction1001(192),
 +                      new ReduceAction384(193),
 +                      new ReduceAction1001(193),
 +                      new ReduceAction384(194),
 +                      new ReduceAction1001(194),
 +                      new ReduceAction362(195),
 +                      new ReduceAction993(195),
 +                      new ReduceAction362(196),
 +                      new ReduceAction993(196),
 +                      new ReduceAction427(197),
 +                      new ReduceAction1011(197),
 +                      new ReduceAction1012(198),
 +                      new ReduceAction1013(198),
 +                      new ReduceAction1014(199),
 +                      new ReduceAction1015(199)
                )
        end
  end
@@@ -9089,24 -9081,22 +9089,24 @@@ private class ReduceAction35
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
 +                                      var listnode4 = new Array[Object]
                                        var tobranode2 = nodearraylist1
                                        assert tobranode2 isa nullable TObra
 -                                      var pexprsnode3 = nodearraylist3
 -                                      assert pexprsnode3 isa nullable AExprs
 -                                      var ptypenode4 = nodearraylist4
 -                                      assert ptypenode4 isa nullable AType
 -                                      var tcbranode5 = nodearraylist5
 -                                      assert tcbranode5 isa nullable TCbra
 -                                      var pannotationsnode6 = nodearraylist6
 -                                      assert pannotationsnode6 isa nullable AAnnotations
 +                                      var listnode3 = nodearraylist3
 +                                      assert listnode3 isa Array[Object]
 +                                      listnode4 = concat(listnode4, listnode3)
 +                                      var ptypenode5 = nodearraylist4
 +                                      assert ptypenode5 isa nullable AType
 +                                      var tcbranode6 = nodearraylist5
 +                                      assert tcbranode6 isa nullable TCbra
 +                                      var pannotationsnode7 = nodearraylist6
 +                                      assert pannotationsnode7 isa nullable AAnnotations
                                        var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
                                                tobranode2,
 -                                              pexprsnode3,
 -                                              ptypenode4,
 -                                              tcbranode5,
 -                                              pannotationsnode6
 +                                              listnode4,
 +                                              ptypenode5,
 +                                              tcbranode6,
 +                                              pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
@@@ -9182,80 -9172,6 +9182,80 @@@ private class ReduceAction36
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
 +                                      var nodearraylist1 = p.pop
 +                                      var listnode2 = new Array[Object]
 +                                      var pexprnode1 = nodearraylist1
 +                                      if pexprnode1 != null then
 +                                              listnode2.add(pexprnode1)
 +                                      end
 +                                      node_list = listnode2
 +                                      p.push(p.go_to(_goto), node_list)
 +      end
 +end
 +private class ReduceAction363
 +      super ReduceAction
 +      redef fun action(p: Parser)
 +      do
 +                                      var node_list: nullable Object = null
 +                                      var nodearraylist2 = p.pop
 +                                      var nodearraylist1 = p.pop
 +                                      var listnode3 = new Array[Object]
 +                                      var pexprnode1 = nodearraylist1
 +                                      var listnode2 = nodearraylist2
 +                                      assert listnode2 isa Array[Object]
 +                                      if pexprnode1 != null then
 +                                              listnode3.add(pexprnode1)
 +                                      end
 +                                      listnode3 = concat(listnode3, listnode2)
 +                                      node_list = listnode3
 +                                      p.push(p.go_to(_goto), node_list)
 +      end
 +end
 +private class ReduceAction365
 +      super ReduceAction
 +      redef fun action(p: Parser)
 +      do
 +                                      var node_list: nullable Object = null
 +                                      var nodearraylist2 = p.pop
 +                                      var nodearraylist1 = p.pop
 +                                      var pexprnode1 = nodearraylist1
 +                                      node_list = pexprnode1
 +                                      p.push(p.go_to(_goto), node_list)
 +      end
 +end
 +private class ReduceAction367
 +      super ReduceAction
 +      redef fun action(p: Parser)
 +      do
 +                                      var node_list: nullable Object = null
 +                                      var nodearraylist7 = p.pop
 +                                      var nodearraylist6 = p.pop
 +                                      var nodearraylist5 = p.pop
 +                                      var nodearraylist4 = p.pop
 +                                      var nodearraylist3 = p.pop
 +                                      var nodearraylist2 = p.pop
 +                                      var nodearraylist1 = p.pop
 +                                      var tkwifnode2 = nodearraylist1
 +                                      assert tkwifnode2 isa nullable TKwif
 +                                      var pexprnode3 = nodearraylist3
 +                                      assert pexprnode3 isa nullable AExpr
 +                                      var pexprnode4 = nodearraylist7
 +                                      assert pexprnode4 isa nullable AExpr
 +                                      var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
 +                                              tkwifnode2,
 +                                              pexprnode3,
 +                                              pexprnode4,
 +                                              null
 +                                      )
 +                                      node_list = pexprnode1
 +                                      p.push(p.go_to(_goto), node_list)
 +      end
 +end
 +private class ReduceAction368
 +      super ReduceAction
 +      redef fun action(p: Parser)
 +      do
 +                                      var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction363
 +private class ReduceAction369
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction364
 +private class ReduceAction370
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction365
 +private class ReduceAction371
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction366
 +private class ReduceAction372
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction369
 +private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction370
 +private class ReduceAction376
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction371
 +private class ReduceAction377
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction372
 +private class ReduceAction378
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction373
 +private class ReduceAction379
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction375
 +private class ReduceAction381
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction376
 +private class ReduceAction382
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction377
 +private class ReduceAction383
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction378
 +private class ReduceAction384
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction379
 +private class ReduceAction385
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction382
 +private class ReduceAction388
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction384
 +private class ReduceAction390
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction386
 +private class ReduceAction392
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction387
 +private class ReduceAction393
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction388
 +private class ReduceAction394
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction389
 +private class ReduceAction395
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction390
 +private class ReduceAction396
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction391
 +private class ReduceAction397
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction392
 +private class ReduceAction398
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction393
 +private class ReduceAction399
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction394
 +private class ReduceAction400
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction395
 +private class ReduceAction401
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction396
 -      super ReduceAction
 -      redef fun action(p: Parser)
 -      do
 -                                      var node_list: nullable Object = null
 -                                      var nodearraylist1 = p.pop
 -                                      var listnode2 = new Array[Object]
 -                                      var pexprnode1 = nodearraylist1
 -                                      if pexprnode1 != null then
 -                                              listnode2.add(pexprnode1)
 -                                      end
 -                                      node_list = listnode2
 -                                      p.push(p.go_to(_goto), node_list)
 -      end
 -end
 -private class ReduceAction397
 -      super ReduceAction
 -      redef fun action(p: Parser)
 -      do
 -                                      var node_list: nullable Object = null
 -                                      var nodearraylist2 = p.pop
 -                                      var nodearraylist1 = p.pop
 -                                      var listnode3 = new Array[Object]
 -                                      var pexprnode1 = nodearraylist1
 -                                      var listnode2 = nodearraylist2
 -                                      assert listnode2 isa Array[Object]
 -                                      if pexprnode1 != null then
 -                                              listnode3.add(pexprnode1)
 -                                      end
 -                                      listnode3 = concat(listnode3, listnode2)
 -                                      node_list = listnode3
 -                                      p.push(p.go_to(_goto), node_list)
 -      end
 -end
 -private class ReduceAction399
 +private class ReduceAction405
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction402
 +private class ReduceAction408
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction403
 +private class ReduceAction409
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction404
 +private class ReduceAction410
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction405
 +private class ReduceAction411
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction406
 +private class ReduceAction412
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction407
 +private class ReduceAction413
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction408
 +private class ReduceAction414
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction409
 +private class ReduceAction415
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction411
 +private class ReduceAction417
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction413
 +private class ReduceAction419
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction414
 +private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction415
 +private class ReduceAction421
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction417
 +private class ReduceAction423
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction418
 +private class ReduceAction424
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction419
 +private class ReduceAction425
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction420
 +private class ReduceAction426
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction421
 +private class ReduceAction427
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction422
 +private class ReduceAction428
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction423
 +private class ReduceAction429
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction424
 +private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction425
 +private class ReduceAction431
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction426
 +private class ReduceAction432
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction427
 +private class ReduceAction433
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction428
 +private class ReduceAction434
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction429
 +private class ReduceAction435
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction431
 +private class ReduceAction437
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction432
 +private class ReduceAction438
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction433
 +private class ReduceAction439
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction435
 +private class ReduceAction441
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction436
 +private class ReduceAction442
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction437
 +private class ReduceAction443
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction439
 +private class ReduceAction445
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction440
 +private class ReduceAction446
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction442
 +private class ReduceAction448
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction443
 +private class ReduceAction449
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction445
 +private class ReduceAction451
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction446
 +private class ReduceAction452
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction449
 +private class ReduceAction455
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction450
 +private class ReduceAction456
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction451
 +private class ReduceAction457
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction780
 +private class ReduceAction786
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction782
 +private class ReduceAction788
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction783
 +private class ReduceAction789
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction784
 +private class ReduceAction790
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction785
 +private class ReduceAction791
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction786
 +private class ReduceAction792
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction793
 +private class ReduceAction799
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction794
 +private class ReduceAction800
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction817
 +private class ReduceAction823
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction818
 +private class ReduceAction824
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction968
 +private class ReduceAction974
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction969
 +private class ReduceAction975
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction970
 +private class ReduceAction976
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction971
 +private class ReduceAction977
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction972
 +private class ReduceAction978
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction973
 +private class ReduceAction979
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction974
 +private class ReduceAction980
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction975
 +private class ReduceAction981
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction976
 +private class ReduceAction982
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction977
 +private class ReduceAction983
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction978
 +private class ReduceAction984
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction979
 +private class ReduceAction985
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction980
 +private class ReduceAction986
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction981
 +private class ReduceAction987
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction982
 +private class ReduceAction988
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction983
 +private class ReduceAction989
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction985
 +private class ReduceAction991
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction987
 +private class ReduceAction993
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction991
 +private class ReduceAction999
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction993
 +private class ReduceAction1001
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction1003
 +private class ReduceAction1011
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction1004
 +private class ReduceAction1012
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction1005
 +private class ReduceAction1013
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction1006
 +private class ReduceAction1014
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        p.push(p.go_to(_goto), node_list)
        end
  end
 -private class ReduceAction1007
 +private class ReduceAction1015
        super ReduceAction
        redef fun action(p: Parser)
        do
@@@ -1,6 -1,6 +1,6 @@@
  # Raw AST node hierarchy.
  # This file was generated by SableCC (http://www.sablecc.org/).
- module parser_abs
+ module parser_abs is no_warning("missing-doc")
  
  import location
  
@@@ -908,7 -908,7 +908,7 @@@ en
  class AArrayExpr
        super AExpr
        var n_obra: TObra is writable, noinit
 -      var n_exprs: AExprs is writable, noinit
 +      var n_exprs: List[AExpr] = new List[AExpr]
        var n_type: nullable AType = null is writable
        var n_cbra: TCbra is writable, noinit
        var n_annotations: nullable AAnnotations = null is writable
@@@ -117,8 -117,48 +117,48 @@@ abstract class ANod
        # Visit all nodes in order.
        # Thus, call `v.enter_visit(e)` for each child `e`
        fun visit_all(v: Visitor) is abstract
+       # Do a deep search and return an array of tokens that match a given text
+       fun collect_tokens_by_text(text: String): Array[Token]
+       do
+               var v = new CollectTokensByTextVisitor(text)
+               v.enter_visit(self)
+               return v.result
+       end
+       # Do a deep search and return an array of node that are annotated
+       # The attached node can be retrieved by two invocations of parent
+       fun collect_annotations_by_name(name: String): Array[AAnnotation]
+       do
+               var v = new CollectAnnotationsByNameVisitor(name)
+               v.enter_visit(self)
+               return v.result
+       end
  end
  
+ private class CollectTokensByTextVisitor
+       super Visitor
+       var text: String
+       var result = new Array[Token]
+       redef fun visit(node)
+       do
+               node.visit_all(self)
+               if node isa Token and node.text == text then result.add(node)
+       end
+ end
+ private class CollectAnnotationsByNameVisitor
+       super Visitor
+       var name: String
+       var result = new Array[AAnnotation]
+       redef fun visit(node)
+       do
+               node.visit_all(self)
+               if node isa AAnnotation and node.n_atid.n_id.text == name then result.add(node)
+       end
+ end
  # A sequence of nodes
  # It is a specific class (instead of using a Array) to track the parent/child relation when nodes are added or removed
  class ANodes[E: ANode]
@@@ -269,6 -309,20 +309,20 @@@ abstract class Pro
        # All the annotations attached directly to the node
        var n_annotations: nullable AAnnotations = null is writable
  
+       # Return all its annotations of a given name in the order of their declaration
+       # Retun an empty array if no such an annotation.
+       fun get_annotations(name: String): Array[AAnnotation]
+       do
+               var res = new Array[AAnnotation]
+               var nas = n_annotations
+               if nas == null then return res
+               for na in nas.n_items do
+                       if na.name != name then continue
+                       res.add(na)
+               end
+               return res
+       end
        redef fun replace_with(n: ANode)
        do
                super
@@@ -1773,7 -1827,7 +1827,7 @@@ en
  class AArrayExpr
        super AExpr
        var n_obra: TObra is writable, noinit
 -      var n_exprs: AExprs is writable, noinit
 +      var n_exprs = new ANodes[AExpr](self)
        var n_type: nullable AType = null is writable
        var n_cbra: TCbra is writable, noinit
  end
@@@ -2038,6 -2092,12 +2092,12 @@@ class AAnnotatio
        var n_opar: nullable TOpar = null is writable
        var n_args = new ANodes[AExpr](self)
        var n_cpar: nullable TCpar = null is writable
+       # The name of the annotation
+       fun name: String
+       do
+               return n_atid.n_id.text
+       end
  end
  
  # An annotation name
@@@ -1,6 -1,6 +1,6 @@@
  # Production AST nodes full definition.
  # This file was generated by SableCC (http://www.sablecc.org/).
- module parser_prod
+ module parser_prod is no_warning("missing-doc")
  
  import lexer
  intrude import parser_nodes
@@@ -5053,7 -5053,7 +5053,7 @@@ en
  redef class AArrayExpr
        init init_aarrayexpr (
                n_obra: nullable TObra,
 -              n_exprs: nullable AExprs,
 +              n_exprs: Collection[Object], # Should be Collection[AExpr]
                n_type: nullable AType,
                n_cbra: nullable TCbra,
                n_annotations: nullable AAnnotations
        do
                _n_obra = n_obra.as(not null)
                n_obra.parent = self
 -              _n_exprs = n_exprs.as(not null)
 -              n_exprs.parent = self
 +              self.n_exprs.unsafe_add_all(n_exprs)
                _n_type = n_type
                if n_type != null then n_type.parent = self
                _n_cbra = n_cbra.as(not null)
                        n_obra = new_child.as(TObra)
                        return
                end
 -              if _n_exprs == old_child then
 -                      n_exprs = new_child.as(AExprs)
 -                      return
 -              end
 +              if n_exprs.replace_child(old_child, new_child) then return
                if _n_type == old_child then
                        n_type = new_child.as(nullable AType)
                        return
                _n_obra = node
                node.parent = self
        end
 -      redef fun n_exprs=(node)
 -      do
 -              _n_exprs = node
 -              node.parent = self
 -      end
        redef fun n_type=(node)
        do
                _n_type = node
        redef fun visit_all(v: Visitor)
        do
                v.enter_visit(_n_obra)
 -              v.enter_visit(_n_exprs)
 +              n_exprs.visit_all(v)
                v.enter_visit(_n_type)
                v.enter_visit(_n_cbra)
                v.enter_visit(_n_annotations)