{ "kind" : "Program", "location" : [ 2, 1, 92, 11 ], "declarations" : [ { "kind" : "ClassDef", "location" : [ 2, 1, 10, 16 ], "name" : { "kind" : "Identifier", "location" : [ 2, 7, 2, 13 ], "name" : "A_CLASS" }, "superClass" : { "kind" : "Identifier", "location" : [ 2, 15, 2, 20 ], "name" : "object" }, "declarations" : [ { "kind" : "VarDef", "location" : [ 3, 5, 3, 21 ], "var" : { "kind" : "TypedVar", "location" : [ 3, 5, 3, 17 ], "identifier" : { "kind" : "Identifier", "location" : [ 3, 5, 3, 13 ], "name" : "a_class_i" }, "type" : { "kind" : "ClassType", "location" : [ 3, 15, 3, 17 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 3, 21, 3, 21 ], "value" : 0 } }, { "kind" : "FuncDef", "location" : [ 4, 5, 5, 18 ], "name" : { "kind" : "Identifier", "location" : [ 4, 9, 4, 16 ], "errorMsg" : "Method overridden with different type signature: __init__", "name" : "__init__" }, "params" : [ { "kind" : "TypedVar", "location" : [ 4, 18, 4, 31 ], "identifier" : { "kind" : "Identifier", "location" : [ 4, 18, 4, 21 ], "name" : "self" }, "type" : { "kind" : "ClassType", "location" : [ 4, 23, 4, 31 ], "className" : "A_CLASS" } }, { "kind" : "TypedVar", "location" : [ 4, 34, 4, 38 ], "identifier" : { "kind" : "Identifier", "location" : [ 4, 34, 4, 34 ], "name" : "x" }, "type" : { "kind" : "ClassType", "location" : [ 4, 36, 4, 38 ], "className" : "int" } } ], "returnType" : { "kind" : "ClassType", "location" : [ 4, 40, 4, 40 ], "className" : "" }, "declarations" : [ ], "statements" : [ { "kind" : "AssignStmt", "location" : [ 5, 9, 5, 18 ], "targets" : [ { "kind" : "MemberExpr", "location" : [ 5, 9, 5, 14 ], "object" : { "kind" : "Identifier", "location" : [ 5, 9, 5, 12 ], "name" : "self" }, "member" : { "kind" : "Identifier", "location" : [ 5, 14, 5, 14 ], "name" : "x" } } ], "value" : { "kind" : "Identifier", "location" : [ 5, 18, 5, 18 ], "name" : "x" } } ] }, { "kind" : "FuncDef", "location" : [ 8, 5, 10, 16 ], "name" : { "kind" : "Identifier", "location" : [ 8, 9, 8, 11 ], "errorMsg" : "First parameter of the following method must be of the enclosing class: add", "name" : "add" }, "params" : [ { "kind" : "TypedVar", "location" : [ 8, 13, 8, 17 ], "identifier" : { "kind" : "Identifier", "location" : [ 8, 13, 8, 13 ], "name" : "y" }, "type" : { "kind" : "ClassType", "location" : [ 8, 15, 8, 17 ], "className" : "int" } } ], "returnType" : { "kind" : "ClassType", "location" : [ 8, 23, 8, 25 ], "className" : "int" }, "declarations" : [ ], "statements" : [ { "kind" : "AssignStmt", "location" : [ 9, 9, 9, 20 ], "targets" : [ { "kind" : "Identifier", "location" : [ 9, 9, 9, 9 ], "name" : "y" } ], "value" : { "kind" : "BinaryExpr", "location" : [ 9, 13, 9, 20 ], "left" : { "kind" : "Identifier", "location" : [ 9, 13, 9, 13 ], "name" : "y" }, "operator" : "+", "right" : { "kind" : "MemberExpr", "location" : [ 9, 15, 9, 20 ], "object" : { "kind" : "Identifier", "location" : [ 9, 15, 9, 18 ], "name" : "self" }, "member" : { "kind" : "Identifier", "location" : [ 9, 20, 9, 20 ], "name" : "x" } } } }, { "kind" : "ReturnStmt", "location" : [ 10, 9, 10, 16 ], "value" : { "kind" : "Identifier", "location" : [ 10, 16, 10, 16 ], "name" : "y" } } ] } ] }, { "kind" : "ClassDef", "location" : [ 12, 1, 13, 21 ], "name" : { "kind" : "Identifier", "location" : [ 12, 7, 12, 13 ], "name" : "B_CLASS" }, "superClass" : { "kind" : "Identifier", "location" : [ 12, 15, 12, 20 ], "name" : "object" }, "declarations" : [ { "kind" : "VarDef", "location" : [ 13, 5, 13, 21 ], "var" : { "kind" : "TypedVar", "location" : [ 13, 5, 13, 17 ], "identifier" : { "kind" : "Identifier", "location" : [ 13, 5, 13, 13 ], "name" : "b_class_i" }, "type" : { "kind" : "ClassType", "location" : [ 13, 15, 13, 17 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 13, 21, 13, 21 ], "value" : 0 } } ] }, { "kind" : "ClassDef", "location" : [ 15, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 15, 7, 15, 13 ], "name" : "C_CLASS" }, "superClass" : { "kind" : "Identifier", "location" : [ 15, 15, 15, 21 ], "name" : "B_CLASS" }, "declarations" : [ ] }, { "kind" : "ClassDef", "location" : [ 19, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 19, 7, 19, 13 ], "errorMsg" : "Duplicate declaration of identifier in same scope: A_CLASS", "name" : "A_CLASS" }, "superClass" : { "kind" : "Identifier", "location" : [ 19, 15, 19, 20 ], "name" : "object" }, "declarations" : [ ] }, { "kind" : "ClassDef", "location" : [ 23, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 23, 7, 23, 13 ], "name" : "D_CLASS" }, "superClass" : { "kind" : "Identifier", "location" : [ 23, 15, 23, 21 ], "errorMsg" : "Super-class not defined: E_CLASS", "name" : "E_CLASS" }, "declarations" : [ ] }, { "kind" : "VarDef", "location" : [ 28, 1, 28, 15 ], "var" : { "kind" : "TypedVar", "location" : [ 28, 1, 28, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 28, 1, 28, 3 ], "name" : "a_s" }, "type" : { "kind" : "ClassType", "location" : [ 28, 5, 28, 7 ], "className" : "str" } }, "value" : { "kind" : "StringLiteral", "location" : [ 28, 11, 28, 15 ], "value" : "a_s" } }, { "kind" : "VarDef", "location" : [ 29, 1, 29, 15 ], "var" : { "kind" : "TypedVar", "location" : [ 29, 1, 29, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 29, 1, 29, 3 ], "name" : "b_s" }, "type" : { "kind" : "ClassType", "location" : [ 29, 5, 29, 7 ], "className" : "str" } }, "value" : { "kind" : "StringLiteral", "location" : [ 29, 11, 29, 15 ], "value" : "b_s" } }, { "kind" : "VarDef", "location" : [ 30, 1, 30, 15 ], "var" : { "kind" : "TypedVar", "location" : [ 30, 1, 30, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 30, 1, 30, 3 ], "name" : "c_s" }, "type" : { "kind" : "ClassType", "location" : [ 30, 5, 30, 7 ], "className" : "str" } }, "value" : { "kind" : "StringLiteral", "location" : [ 30, 11, 30, 15 ], "value" : "c_s" } }, { "kind" : "VarDef", "location" : [ 32, 1, 32, 11 ], "var" : { "kind" : "TypedVar", "location" : [ 32, 1, 32, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 32, 1, 32, 3 ], "name" : "a_i" }, "type" : { "kind" : "ClassType", "location" : [ 32, 5, 32, 7 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 32, 11, 32, 11 ], "value" : 0 } }, { "kind" : "VarDef", "location" : [ 33, 1, 33, 11 ], "var" : { "kind" : "TypedVar", "location" : [ 33, 1, 33, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 33, 1, 33, 3 ], "name" : "b_i" }, "type" : { "kind" : "ClassType", "location" : [ 33, 5, 33, 7 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 33, 11, 33, 11 ], "value" : 0 } }, { "kind" : "VarDef", "location" : [ 34, 1, 34, 11 ], "var" : { "kind" : "TypedVar", "location" : [ 34, 1, 34, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 34, 1, 34, 3 ], "name" : "c_i" }, "type" : { "kind" : "ClassType", "location" : [ 34, 5, 34, 7 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 34, 11, 34, 11 ], "value" : 0 } }, { "kind" : "VarDef", "location" : [ 36, 1, 36, 16 ], "var" : { "kind" : "TypedVar", "location" : [ 36, 1, 36, 8 ], "identifier" : { "kind" : "Identifier", "location" : [ 36, 1, 36, 3 ], "name" : "a_b" }, "type" : { "kind" : "ClassType", "location" : [ 36, 5, 36, 8 ], "className" : "bool" } }, "value" : { "kind" : "BooleanLiteral", "location" : [ 36, 12, 36, 16 ], "value" : false } }, { "kind" : "VarDef", "location" : [ 37, 1, 37, 16 ], "var" : { "kind" : "TypedVar", "location" : [ 37, 1, 37, 8 ], "identifier" : { "kind" : "Identifier", "location" : [ 37, 1, 37, 3 ], "name" : "b_b" }, "type" : { "kind" : "ClassType", "location" : [ 37, 5, 37, 8 ], "className" : "bool" } }, "value" : { "kind" : "BooleanLiteral", "location" : [ 37, 12, 37, 16 ], "value" : false } }, { "kind" : "VarDef", "location" : [ 38, 1, 38, 16 ], "var" : { "kind" : "TypedVar", "location" : [ 38, 1, 38, 8 ], "identifier" : { "kind" : "Identifier", "location" : [ 38, 1, 38, 3 ], "name" : "c_b" }, "type" : { "kind" : "ClassType", "location" : [ 38, 5, 38, 8 ], "className" : "bool" } }, "value" : { "kind" : "BooleanLiteral", "location" : [ 38, 12, 38, 16 ], "value" : false } }, { "kind" : "VarDef", "location" : [ 40, 1, 40, 19 ], "var" : { "kind" : "TypedVar", "location" : [ 40, 1, 40, 12 ], "identifier" : { "kind" : "Identifier", "location" : [ 40, 1, 40, 6 ], "name" : "a_list" }, "type" : { "kind" : "ListType", "location" : [ 40, 8, 40, 12 ], "elementType" : { "kind" : "ClassType", "location" : [ 40, 9, 40, 11 ], "className" : "int" } } }, "value" : { "kind" : "NoneLiteral", "location" : [ 40, 16, 40, 19 ] } }, { "kind" : "VarDef", "location" : [ 41, 1, 41, 19 ], "var" : { "kind" : "TypedVar", "location" : [ 41, 1, 41, 12 ], "identifier" : { "kind" : "Identifier", "location" : [ 41, 1, 41, 6 ], "name" : "b_list" }, "type" : { "kind" : "ListType", "location" : [ 41, 8, 41, 12 ], "elementType" : { "kind" : "ClassType", "location" : [ 41, 9, 41, 11 ], "className" : "int" } } }, "value" : { "kind" : "NoneLiteral", "location" : [ 41, 16, 41, 19 ] } }, { "kind" : "VarDef", "location" : [ 42, 1, 42, 19 ], "var" : { "kind" : "TypedVar", "location" : [ 42, 1, 42, 12 ], "identifier" : { "kind" : "Identifier", "location" : [ 42, 1, 42, 6 ], "name" : "c_list" }, "type" : { "kind" : "ListType", "location" : [ 42, 8, 42, 12 ], "elementType" : { "kind" : "ClassType", "location" : [ 42, 9, 42, 11 ], "className" : "int" } } }, "value" : { "kind" : "NoneLiteral", "location" : [ 42, 16, 42, 19 ] } }, { "kind" : "VarDef", "location" : [ 44, 1, 44, 22 ], "var" : { "kind" : "TypedVar", "location" : [ 44, 1, 44, 15 ], "identifier" : { "kind" : "Identifier", "location" : [ 44, 1, 44, 7 ], "name" : "a_class" }, "type" : { "kind" : "ClassType", "location" : [ 44, 9, 44, 15 ], "className" : "A_CLASS" } }, "value" : { "kind" : "NoneLiteral", "location" : [ 44, 19, 44, 22 ] } }, { "kind" : "VarDef", "location" : [ 45, 1, 45, 22 ], "var" : { "kind" : "TypedVar", "location" : [ 45, 1, 45, 15 ], "identifier" : { "kind" : "Identifier", "location" : [ 45, 1, 45, 7 ], "name" : "b_class" }, "type" : { "kind" : "ClassType", "location" : [ 45, 9, 45, 15 ], "className" : "B_CLASS" } }, "value" : { "kind" : "NoneLiteral", "location" : [ 45, 19, 45, 22 ] } }, { "kind" : "VarDef", "location" : [ 46, 1, 46, 22 ], "var" : { "kind" : "TypedVar", "location" : [ 46, 1, 46, 15 ], "identifier" : { "kind" : "Identifier", "location" : [ 46, 1, 46, 7 ], "name" : "c_class" }, "type" : { "kind" : "ClassType", "location" : [ 46, 9, 46, 15 ], "className" : "C_CLASS" } }, "value" : { "kind" : "NoneLiteral", "location" : [ 46, 19, 46, 22 ] } }, { "kind" : "FuncDef", "location" : [ 50, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 50, 5, 50, 7 ], "name" : "f_1" }, "params" : [ ], "returnType" : { "kind" : "ClassType", "location" : [ 50, 14, 50, 19 ], "className" : "object" }, "declarations" : [ { "kind" : "FuncDef", "location" : [ 51, 5, 54, 18 ], "name" : { "kind" : "Identifier", "location" : [ 51, 9, 51, 13 ], "name" : "f_f_1" }, "params" : [ ], "returnType" : { "kind" : "ClassType", "location" : [ 51, 20, 51, 25 ], "className" : "object" }, "declarations" : [ { "kind" : "GlobalDecl", "location" : [ 53, 9, 53, 18 ], "variable" : { "kind" : "Identifier", "location" : [ 53, 16, 53, 18 ], "name" : "a_s" } } ], "statements" : [ { "kind" : "ExprStmt", "location" : [ 54, 9, 54, 18 ], "expr" : { "kind" : "CallExpr", "location" : [ 54, 9, 54, 18 ], "function" : { "kind" : "Identifier", "location" : [ 54, 9, 54, 13 ], "name" : "print" }, "args" : [ { "kind" : "Identifier", "location" : [ 54, 15, 54, 17 ], "name" : "a_s" } ] } } ] } ], "statements" : [ ] }, { "kind" : "FuncDef", "location" : [ 58, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 58, 5, 58, 7 ], "name" : "f_2" }, "params" : [ ], "returnType" : { "kind" : "ClassType", "location" : [ 58, 14, 58, 19 ], "className" : "object" }, "declarations" : [ { "kind" : "VarDef", "location" : [ 59, 5, 59, 19 ], "var" : { "kind" : "TypedVar", "location" : [ 59, 5, 59, 13 ], "identifier" : { "kind" : "Identifier", "location" : [ 59, 5, 59, 9 ], "name" : "f_a_s" }, "type" : { "kind" : "ClassType", "location" : [ 59, 11, 59, 13 ], "className" : "str" } }, "value" : { "kind" : "StringLiteral", "location" : [ 59, 17, 59, 19 ], "value" : "s" } }, { "kind" : "FuncDef", "location" : [ 60, 5, 62, 20 ], "name" : { "kind" : "Identifier", "location" : [ 60, 9, 60, 13 ], "name" : "f_f_2" }, "params" : [ ], "returnType" : { "kind" : "ClassType", "location" : [ 60, 20, 60, 25 ], "className" : "object" }, "declarations" : [ { "kind" : "NonLocalDecl", "location" : [ 61, 9, 61, 22 ], "variable" : { "kind" : "Identifier", "location" : [ 61, 18, 61, 22 ], "name" : "f_a_s" } } ], "statements" : [ { "kind" : "ExprStmt", "location" : [ 62, 9, 62, 20 ], "expr" : { "kind" : "CallExpr", "location" : [ 62, 9, 62, 20 ], "function" : { "kind" : "Identifier", "location" : [ 62, 9, 62, 13 ], "name" : "print" }, "args" : [ { "kind" : "Identifier", "location" : [ 62, 15, 62, 19 ], "name" : "f_a_s" } ] } } ] } ], "statements" : [ ] }, { "kind" : "FuncDef", "location" : [ 66, 1, 72, 16 ], "name" : { "kind" : "Identifier", "location" : [ 66, 5, 66, 7 ], "name" : "f_3" }, "params" : [ { "kind" : "TypedVar", "location" : [ 66, 9, 66, 13 ], "identifier" : { "kind" : "Identifier", "location" : [ 66, 9, 66, 9 ], "name" : "x" }, "type" : { "kind" : "ClassType", "location" : [ 66, 11, 66, 13 ], "className" : "int" } } ], "returnType" : { "kind" : "ClassType", "location" : [ 66, 19, 66, 22 ], "className" : "bool" }, "declarations" : [ { "kind" : "VarDef", "location" : [ 67, 5, 67, 17 ], "var" : { "kind" : "TypedVar", "location" : [ 67, 5, 67, 13 ], "identifier" : { "kind" : "Identifier", "location" : [ 67, 5, 67, 9 ], "name" : "f_b_s" }, "type" : { "kind" : "ClassType", "location" : [ 67, 11, 67, 13 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 67, 17, 67, 17 ], "value" : 3 } } ], "statements" : [ { "kind" : "IfStmt", "location" : [ 68, 5, 0, 0 ], "condition" : { "kind" : "BinaryExpr", "location" : [ 68, 9, 68, 21 ], "left" : { "kind" : "BinaryExpr", "location" : [ 68, 9, 68, 17 ], "left" : { "kind" : "Identifier", "location" : [ 68, 9, 68, 9 ], "name" : "x" }, "operator" : "+", "right" : { "kind" : "Identifier", "location" : [ 68, 13, 68, 17 ], "name" : "f_b_s" } }, "operator" : ">", "right" : { "kind" : "IntegerLiteral", "location" : [ 68, 21, 68, 21 ], "value" : 3 } }, "thenBody" : [ { "kind" : "ReturnStmt", "location" : [ 69, 9, 69, 19 ], "value" : { "kind" : "BooleanLiteral", "location" : [ 69, 16, 69, 19 ], "value" : true } } ], "elseBody" : [ { "kind" : "IfStmt", "location" : [ 70, 5, 0, 0 ], "condition" : { "kind" : "BinaryExpr", "location" : [ 70, 11, 70, 24 ], "left" : { "kind" : "BinaryExpr", "location" : [ 70, 11, 70, 19 ], "left" : { "kind" : "Identifier", "location" : [ 70, 11, 70, 11 ], "name" : "x" }, "operator" : "+", "right" : { "kind" : "Identifier", "location" : [ 70, 15, 70, 19 ], "name" : "f_b_s" } }, "operator" : "==", "right" : { "kind" : "IntegerLiteral", "location" : [ 70, 24, 70, 24 ], "value" : 3 } }, "thenBody" : [ { "kind" : "ExprStmt", "location" : [ 71, 9, 71, 22 ], "expr" : { "kind" : "CallExpr", "location" : [ 71, 9, 71, 22 ], "function" : { "kind" : "Identifier", "location" : [ 71, 9, 71, 13 ], "name" : "print" }, "args" : [ { "kind" : "StringLiteral", "location" : [ 71, 15, 71, 21 ], "value" : "Equal" } ] } } ], "elseBody" : [ ] } ] }, { "kind" : "ReturnStmt", "location" : [ 72, 5, 72, 16 ], "value" : { "kind" : "BooleanLiteral", "location" : [ 72, 12, 72, 16 ], "value" : false } } ] }, { "kind" : "FuncDef", "location" : [ 74, 1, 77, 16 ], "name" : { "kind" : "Identifier", "location" : [ 74, 5, 74, 7 ], "name" : "f_4" }, "params" : [ ], "returnType" : { "kind" : "ClassType", "location" : [ 74, 14, 74, 19 ], "className" : "object" }, "declarations" : [ { "kind" : "VarDef", "location" : [ 75, 5, 75, 17 ], "var" : { "kind" : "TypedVar", "location" : [ 75, 5, 75, 13 ], "identifier" : { "kind" : "Identifier", "location" : [ 75, 5, 75, 9 ], "name" : "f_a_i" }, "type" : { "kind" : "ClassType", "location" : [ 75, 11, 75, 13 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 75, 17, 75, 17 ], "value" : 2 } } ], "statements" : [ { "kind" : "AssignStmt", "location" : [ 76, 5, 76, 19 ], "targets" : [ { "kind" : "Identifier", "location" : [ 76, 5, 76, 7 ], "name" : "a_i" } ], "value" : { "kind" : "BinaryExpr", "location" : [ 76, 11, 76, 19 ], "left" : { "kind" : "Identifier", "location" : [ 76, 11, 76, 15 ], "name" : "f_a_i" }, "operator" : "+", "right" : { "kind" : "IntegerLiteral", "location" : [ 76, 19, 76, 19 ], "value" : 1 } } }, { "kind" : "ReturnStmt", "location" : [ 77, 5, 77, 16 ], "value" : { "kind" : "Identifier", "location" : [ 77, 12, 77, 16 ], "name" : "f_a_i" } } ] }, { "kind" : "FuncDef", "location" : [ 81, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 81, 5, 81, 7 ], "errorMsg" : "Duplicate declaration of identifier in same scope: f_2", "name" : "f_2" }, "params" : [ ], "returnType" : { "kind" : "ClassType", "location" : [ 81, 14, 81, 19 ], "className" : "object" }, "declarations" : [ ], "statements" : [ ] }, { "kind" : "FuncDef", "location" : [ 85, 1, 0, 0 ], "name" : { "kind" : "Identifier", "location" : [ 85, 5, 85, 9 ], "errorMsg" : "Duplicate declaration of identifier in same scope: print", "name" : "print" }, "params" : [ { "kind" : "TypedVar", "location" : [ 85, 11, 85, 20 ], "identifier" : { "kind" : "Identifier", "location" : [ 85, 11, 85, 13 ], "name" : "val" }, "type" : { "kind" : "ClassType", "location" : [ 85, 15, 85, 20 ], "className" : "object" } } ], "returnType" : { "kind" : "ClassType", "location" : [ 85, 26, 85, 31 ], "className" : "object" }, "declarations" : [ ], "statements" : [ ] }, { "kind" : "VarDef", "location" : [ 89, 1, 89, 11 ], "var" : { "kind" : "TypedVar", "location" : [ 89, 1, 89, 7 ], "identifier" : { "kind" : "Identifier", "location" : [ 89, 1, 89, 3 ], "errorMsg" : "Duplicate declaration of identifier in same scope: a_i", "name" : "a_i" }, "type" : { "kind" : "ClassType", "location" : [ 89, 5, 89, 7 ], "className" : "int" } }, "value" : { "kind" : "IntegerLiteral", "location" : [ 89, 11, 89, 11 ], "value" : 2 } } ], "statements" : [ { "kind" : "ReturnStmt", "location" : [ 92, 1, 92, 10 ], "value" : { "kind" : "Identifier", "location" : [ 92, 8, 92, 10 ], "name" : "a_i" } } ], "errors" : { "errors" : [ { "kind" : "CompilerError", "location" : [ 19, 7, 19, 13 ], "message" : "Duplicate declaration of identifier in same scope: A_CLASS" }, { "kind" : "CompilerError", "location" : [ 23, 15, 23, 21 ], "message" : "Super-class not defined: E_CLASS" }, { "kind" : "CompilerError", "location" : [ 81, 5, 81, 7 ], "message" : "Duplicate declaration of identifier in same scope: f_2" }, { "kind" : "CompilerError", "location" : [ 85, 5, 85, 9 ], "message" : "Duplicate declaration of identifier in same scope: print" }, { "kind" : "CompilerError", "location" : [ 89, 1, 89, 3 ], "message" : "Duplicate declaration of identifier in same scope: a_i" }, { "kind" : "CompilerError", "location" : [ 4, 9, 4, 16 ], "message" : "Method overridden with different type signature: __init__" }, { "kind" : "CompilerError", "location" : [ 8, 9, 8, 11 ], "message" : "First parameter of the following method must be of the enclosing class: add" } ], "kind" : "Errors", "location" : [ 0, 0, 0, 0 ] } }