=== Phase A Analyse Lexicale et Phase B Syntaxique === === new Axiom === Reading file /home/denis/Depots/csc4251-4252/csc4251-4252-compil/JavaAndCo/N+1_MinijavaSolution/target/test-classes/Jalons/Test109.txt Parsing OK, Axiom = Axiom[3/1(91)-35/2(588)] = AST Axiom[3/1(91)-35/2(588)] ├─KlassMain[3/1(91)-7/2(222)] │ ├─Ident[3/7(97)-3/14(104)] Test109 │ ├─Ident[4/36(142)-4/40(146)] args │ └─StmtPrint[5/5(154)-5/46(195)] │ └─ExprCall[5/24(173)-5/44(193)] │ ├─ExprNew[5/24(173)-5/35(184)] │ │ └─Ident[5/28(177)-5/33(182)] Test2 │ ├─Ident[5/36(185)-5/41(190)] Start │ └─AstList[5/42(191)-5/43(192)] │ └─ExprLiteralInt[5/42(191)-5/43(192)] 0 └─AstList[7/2(222)-35/2(588)] ├─Klass[9/1(224)-26/2(509)] │ ├─Ident[9/7(230)-9/12(235)] Test2 │ ├─Ident[9/13(236)-9/26(249)] Test3 │ ├─AstList │ │ ├─Variable[10/3(254)-10/9(260)] │ │ │ ├─Type[10/3(254)-10/6(257)] INT │ │ │ └─Ident[10/7(258)-10/8(259)] d │ │ ├─Variable[11/3(263)-11/11(271)] │ │ │ ├─Type[11/3(263)-11/8(268)] INT_ARRAY │ │ │ └─Ident[11/9(269)-11/10(270)] e │ │ └─Variable[12/3(274)-12/11(282)] │ │ ├─Type[12/3(274)-12/8(279)] INT_ARRAY │ │ └─Ident[12/9(280)-12/10(281)] f │ └─AstList │ └─AstMethod[14/3(286)-25/4(507)] │ ├─Type[14/10(293)-14/13(296)] INT │ ├─Ident[14/14(297)-14/19(302)] Start │ ├─AstList[14/20(303)-14/25(308)] │ │ └─Formal[14/20(303)-14/25(308)] │ │ ├─Type[14/20(303)-14/23(306)] INT │ │ └─Ident[14/24(307)-14/25(308)] y │ ├─AstList │ ├─AstList │ │ ├─StmtAssign[15/5(316)-15/20(331)] │ │ │ ├─Ident[15/5(316)-15/6(317)] e │ │ │ └─ExprArrayNew[15/9(320)-15/19(330)] │ │ │ └─ExprLiteralInt[15/17(328)-15/18(329)] 3 │ │ ├─StmtAssign[16/5(336)-16/20(351)] │ │ │ ├─Ident[16/5(336)-16/6(337)] f │ │ │ └─ExprArrayNew[16/9(340)-16/19(350)] │ │ │ └─ExprLiteralInt[16/17(348)-16/18(349)] 3 │ │ ├─StmtAssign[17/5(356)-17/11(362)] │ │ │ ├─Ident[17/5(356)-17/6(357)] a │ │ │ └─ExprLiteralInt[17/9(360)-17/10(361)] 3 │ │ ├─StmtAssign[18/5(367)-18/11(373)] │ │ │ ├─Ident[18/5(367)-18/6(368)] d │ │ │ └─ExprLiteralInt[18/9(371)-18/10(372)] 4 │ │ ├─StmtArrayAssign[19/5(378)-19/14(387)] │ │ │ ├─Ident[19/5(378)-19/6(379)] e │ │ │ ├─ExprLiteralInt[19/7(380)-19/8(381)] 0 │ │ │ └─ExprIdent[19/12(385)-19/13(386)] │ │ │ └─Ident[19/12(385)-19/13(386)] a │ │ ├─StmtArrayAssign[20/5(392)-20/14(401)] │ │ │ ├─Ident[20/5(392)-20/6(393)] e │ │ │ ├─ExprLiteralInt[20/7(394)-20/8(395)] 1 │ │ │ └─ExprIdent[20/12(399)-20/13(400)] │ │ │ └─Ident[20/12(399)-20/13(400)] d │ │ ├─StmtArrayAssign[21/5(406)-21/15(416)] │ │ │ ├─Ident[21/5(406)-21/6(407)] f │ │ │ ├─ExprLiteralInt[21/7(408)-21/8(409)] 1 │ │ │ └─ExprLiteralInt[21/12(413)-21/14(415)] 42 │ │ ├─StmtArrayAssign[22/5(421)-22/24(440)] │ │ │ ├─Ident[22/5(421)-22/6(422)] e │ │ │ ├─ExprLiteralInt[22/7(423)-22/8(424)] 2 │ │ │ └─ExprOpBin[22/12(428)-22/23(439)] PLUS │ │ │ ├─ExprArrayLookup[22/12(428)-22/16(432)] │ │ │ │ ├─ExprIdent[22/12(428)-22/13(429)] │ │ │ │ │ └─Ident[22/12(428)-22/13(429)] e │ │ │ │ └─ExprLiteralInt[22/14(430)-22/15(431)] 0 │ │ │ └─ExprArrayLookup[22/19(435)-22/23(439)] │ │ │ ├─ExprIdent[22/19(435)-22/20(436)] │ │ │ │ └─Ident[22/19(435)-22/20(436)] e │ │ │ └─ExprLiteralInt[22/21(437)-22/22(438)] 1 │ │ └─StmtPrint[23/5(445)-23/30(470)] │ │ └─ExprArrayLookup[23/24(464)-23/28(468)] │ │ ├─ExprIdent[23/24(464)-23/25(465)] │ │ │ └─Ident[23/24(464)-23/25(465)] e │ │ └─ExprLiteralInt[23/26(466)-23/27(467)] 2 │ └─ExprArrayLength[24/12(494)-24/20(502)] │ └─ExprIdent[24/12(494)-24/13(495)] │ └─Ident[24/12(494)-24/13(495)] e ├─Klass[28/1(511)-31/2(562)] │ ├─Ident[28/7(517)-28/12(522)] Test3 │ ├─Ident[28/13(523)-28/26(536)] Test4 │ ├─AstList │ │ ├─Variable[29/3(541)-29/9(547)] │ │ │ ├─Type[29/3(541)-29/6(544)] INT │ │ │ └─Ident[29/7(545)-29/8(546)] b │ │ └─Variable[30/3(550)-30/13(560)] │ │ ├─Type[30/3(550)-30/10(557)] BOOL │ │ └─Ident[30/11(558)-30/12(559)] c │ └─AstList └─Klass[33/1(564)-35/2(588)] ├─Ident[33/7(570)-33/12(575)] Test4 ├─Ident Object ├─AstList │ └─Variable[34/3(580)-34/9(586)] │ ├─Type[34/3(580)-34/6(583)] INT │ └─Ident[34/7(584)-34/8(585)] a └─AstList = Pretty Print class Test109{ public static void main(String [] args) { System.out.println(new Test2().Start(0)); } } class Test2 extends Test3 { int d; int[] e; int[] f; public int Start(int y) { e = new int [3]; f = new int [3]; a = 3; d = 4; e[0] = a; e[1] = d; f[1] = 42; e[2] = (e[0] + e[1]); System.out.println(e[2]); return e.length; } } class Test3 extends Test4 { int b; boolean c; } class Test4 extends Object { int a; }