This is the expected output from the identifier cross-reference analysis that you are to program compile: test: [echo] ------- test using test.lite ---------- [echo] [java] CSX Lite program parsed correctly. [java] Here is its unparsing: [java] 2: { [java] 2: int aa; [java] 3: int bb; [java] 4: int cc; [java] 5: int dd; [java] 6: int bbb; [java] 8: int ccc; [java] 9: aa = (aa + (bb - 18)); [java] 10: bb = ((aa + bb) - 12); [java] 11: if ((((bb + cc) - dd) == 123)) [java] 11: { [java] 12: bool aa; [java] 13: if (aa) [java] 14: ccc = dd; [java] 11: } [java] 15: aa = ccc; [java] 2: } EOF [java] Here is an analysis of identifier declarations and uses for test.lite: [java] 2: aa(int): 9(2),10,15 [java] 3: bb(int): 9,10(2),11 [java] 4: cc(int): 11 [java] 5: dd(int): 11,14 [java] 6: bbb(int) [java] 8: ccc(int): 14,15 [java] 12: aa(bool): 13 [echo] ------- test using biggertest.lite ---------- [echo] [java] CSX Lite program parsed correctly. [java] Here is its unparsing: [java] 2: { [java] 2: int i; [java] 3: bool b; [java] 4: { [java] 4: int c; [java] 5: c = 1; [java] 6: i = (c + 22); [java] 7: { [java] 7: int j; [java] 8: j = ((c - 1) - 123); [java] 7: } [java] 4: } [java] 9: if (b) [java] 9: { [java] 10: int k; [java] 10: int c; [java] 11: k = 2010; [java] 12: if ((i == 17)) [java] 12: { [java] 13: int l; [java] 13: int c; [java] 14: l = (k + c); [java] 12: } [java] 15: c = (i - 10); [java] 9: } [java] 16: i = (1 + 1); [java] 2: } EOF [java] Here is an analysis of identifier declarations and uses for biggertest.lite: [java] 2: i(int): 6,12,15,16 [java] 3: b(bool): 9 [java] 4: c(int): 5,6,8 [java] 7: j(int): 8 [java] 10: k(int): 11,14 [java] 10: c(int): 15 [java] 13: l(int): 14 [java] 13: c(int): 14 [echo] ------- test using error.lite ---------- [echo] [java] CSX Lite program parsed correctly. [java] Here is its unparsing: [java] 4: { [java] 4: int aa; [java] 5: int bb; [java] 6: int cc; [java] 7: int dd; [java] 8: int bbb; [java] 9: bool bb; [java] 11: int ccc; [java] 12: aa = (aa + (bb - 18)); [java] 13: bb = ((aa + bb) - 12); [java] 14: if ((((bb + cc) - dd) == 123)) [java] 14: { [java] 15: bool aa; [java] 16: int aa; [java] 17: if (aa) [java] 18: ccc = dd; [java] 14: } [java] 19: ab = ccc; [java] 20: aa = c; [java] 4: } EOF [java] Here is an analysis of identifier declarations and uses for error.lite: [java] 4: aa(int): 12(2),13,20 [java] 5: bb(int): 12,13(2),14 [java] 6: cc(int): 14 [java] 7: dd(int): 14,18 [java] 8: bbb(int) [java] 9: bb(illegal redeclaration) [java] 11: ccc(int): 18,19 [java] 15: aa(bool): 17 [java] 16: aa(illegal redeclaration) [java] Undeclared Identifiers: [java] ab(undeclared): 19 [java] c(undeclared): 20 BUILD SUCCESSFUL Total time: 3 seconds