ELF.4( UED$E D$$$UED$$,$U}|} } $O}t} u EE;E u E}t }t} y Ef}t} u EQEEE+E;E u E1E¡@EE}~ 9E|EEU}~} 8E D$E$u"ED$E $u $jE D$E$tE ECED$E $tEE%E¡PE D$$EEUS}u $E E@t\E@tPE@@tCE@@t4E@@@ t"E@@@tE@@@u $E@ED$ED$ ED$E D$$LLE@@D$$DžPDžTDžXL\DžP\¡PPk,E@@@ T$$uX\¡PPk,@X\¡PPk,@T)P\¡@;P=\¡@\X} \X}E@@@D$$E@@@ED$ED$ ED$E D$$`T|X| `} $TD$`$u!E@@@@D$$$XHJE mE@t7E@t+E@@ tE@@tE@@u $<DždDžhDžlE pp E@@D$$Dždp¡Pdk,E@@ T$$uXp¡Pdk,@lp¡Pdk,@h)dp¡@;d@p¡@pl} pl}E@@D$$E@@ED$ED$ ED$E D$$th|l| t} $hD$t$uE@@@D$$$lHE E@t:E@t.E@@t!E@@tE@@@ u $YE@ED$ED$ ED$E D$$xxE@@D$$Dž|xEDž|E@@X E¡H|\$$u3E¡H|@H|E¡@;|bE¡@E}6E@@@D$$q E E@tE@tE@@ u $} ~dE ¡PEk,PE@@ T$$u*E ¡PEk,@HmEEME@H UEL$$uUE@HEE;E|E EEsE@X E¡HU\$$u0E¡HU@HEE¡@;EqE¡@E}HE@@D$$qE1E@t\E@tPE@@tCE@@t4E@@@ t"E@@@tE@@@u $E@ED$ED$ ED$E D$$E}E@@D$$EEEEEpE@@X E¡HU\$$u*E¡HU@E EE¡@;EtE¡@E}} }E}}E@@@D$$qE@@@ED$ED$ ED$E D$$EED$E$uE@@@D$$EH EnE@t7E@t+E@@ tE@@tE@@u $EE} ~\E ¡PEk,PE@@ T$$u"E ¡PEk,@EEEE@H UEL$$uUE@EEE;E}}~E EEmE@X E¡HU\$$u*E¡HU@E EE¡@;EwE¡@E}} }H}}E@@D$$qE@@ED$ED$ ED$E D$$EED$E$uE@@D$$EHj EE@t(E@tE@@tE@@u $E@ED$ED$ ED$E D$$E}tE@@D$$E@@ED$ED$ ED$E D$$E}tE@@@D$$DžHi EE@t(E@tE@@tE@@u $E@ED$ED$ ED$E D$$E}tE@@D$$/E@@ED$ED$ ED$E D$$E}tE@@@D$$/DžHh EE@t(E@tE@@tE@@u $LE@ED$ED$ ED$E D$$E}tE@@D$$cE@@ED$ED$ ED$E D$$Eă}tE@@@D$$cDžHgEE@t(E@tE@@tE@@u $E@ED$ED$ ED$E D$$EȋE@@ED$ED$ ED$E D$$Ẽ}|}} $ẺD$Eȉ$u4EȉD$Ẻ$uE@@@D$$DžHIEE@t(E@tE@@tE@@u $E@ED$ED$ ED$E D$$EЃ}tE@@D$$E@@ED$ED$ ED$E D$$Eԃ}tE@@@D$$DžHHEE@t E@u $E@ED$ED$ ED$E D$$E؃}tE@@D$$,DžHEE@t(E@tE@@tE@@u $ME@ED$ED$ ED$E D$$E܃}tE@@D$$aE@@ED$ED$ ED$E D$$E}tE@@@D$$aDžHEE@tJE@t>E@@t1E@@t"E@@@tE@@@u $}E@ED$ED$ ED$E D$$E}tE@@D$$E@@ED$ED$ ED$E D$$EE@@@ED$ED$ ED$E D$$E}~}MED$E$u7ED$E$u!E@@@@D$$ED$E$HEE@trE@tfE@@tYE@@tJE@@@t:E@@@t(E@@@@tE@@@@u $E@ED$ED$ ED$E D$$EE@@@ED$ED$ ED$E D$$EE@@ED$ED$ ED$E D$$E}tE@@@D$$E@@@@ED$ED$ ED$E D$$DžHEE@t E@u $E@ED$ED$ ED$E D$$E}tE@@D$$+DžHEuDžHEudE@t E@u $DE@@ $E}yE@@D$$\EHsEu DžH]Eu'} yE@D$$E H,Eu DžH$DžHH[]U(}t E t $E@E5EED$ED$ ED$E D$$EE@E}uŋEUSdu $EtEE[E¡E¡L$$u#E¡@D$$ E9E|E9E|EXE¡@xE¡@;Eu#E¡@ D$$,EcE¡HUĉ@}5E¡HUĉ@D$$?EE¡@;EEVE¡PEk,@}/E¡PEk,@ D$$UE¡PEk,@}/E¡PEk,@D$$tE{E¡PEk,H$Uĉ@}AE¡PEk,H$Uĉ@D$$?EE¡PEk,@ ;E]EE¡@;EE9EEKUĉ¡@})Uĉ¡@D$$?E9E|ElẼESEЉD$Ẻ$t9ẺD$EЉ$t#E¡@ D$$E9E|E9E|EEE؃EE¡HUE¡HU؉\$$u5E¡HU@D$$EE¡@;ESE¡@EEE¡HUE¡HU؉\$$u5E¡HU؉@D$$EE¡@;ESE¡@E}'EE¡@;E1E9EEEE܃EE¡PEk,E¡PEk,L$$u/E¡PEk,@D$$ EE¡@;EeE¡@EEEE¡PEk,E¡PEk,L$$E¡PEk,HE¡PEk,@9uBE¡PEk,HE¡PEk,@9t/E¡PEk,@D$$,EE¡@;EE¡@E}EE¡PEk,XE¡PEk,H$Ủ\$$uAE¡PEk,H$Ủ@D$$xẼEE¡PEk,H$UЉE¡PEk,H$Ủ\$$uAE¡PEk,H$UЉ@D$$EE¡PEk,@ ;E#EE¡PEk,@ ;EIE¡PEk,H E¡PEk,X$E¡PEk,P(L$\$ E܉D$EԉD$$EE¡PEk,@D$E$u/E¡PEk,@ D$$EE¡@;E.E9EEEEmU¡U¡L$$u)U¡@D$$E9E|E9El D$T$ D$D$ $d[]Semantic analysis error on line %d: %s Error during type checking: %s illegal types in isSubtypeillegal type in joininvalid AST in typeExprinvalid DOT_METHOD_CALL_EXPR ASTexpression type does not support dot operatorUndefined methodinvalid types in method-call expressionParameter type mismatchinvalid METHOD_CALL_EXPR ASTinvalid DOT_ID_EXPR ASTUnknown identifierinvalid ID_EXPR ASTinvalid DOT_ASSIGN_EXPR ASTAssignment-type mismatchinvalid ASSIGN_EXPR ASTinvalid PLUS_EXPR ASTnon-nat type with + operatorinvalid MINUS_EXPR ASTnon-nat type with - operatorinvalid TIMES_EXPR ASTnon-nat type with * operatorinvalid EQUALITY_EXPR ASTinvalid types in equality testType mismatch with == operatorinvalid GREATER_THAN_EXPR ASTnon-nat type with > operatorinvalid NOT_EXPR ASTnon-nat type in 'not' expressioninvalid OR_EXPR ASTnon-nat type in disjunctioninvalid IF_THEN_ELSE_EXPR ASTnon-nat type in 'if' testtypes of 'then' and 'else' branches mismatchinvalid FOR_EXPR ASTnon-nat type in loop testinvalid PRINT_EXPR ASTnon-nat type in printNatinvalid NEW_EXPR ASTinvalid object type in new expressionreference to 'this' outside of a classinvalid expression in typeExpr()invalid AST in typeExprsnull classesST in typecheckProgramThis class is already declared.Invalid superclassInvalid variable typeInvalid declared return typeInvalid declared parameter typeCyclic class declarationVariable declared multiple timesVar declared multiple times (here and in a superclass)Method defined multiple timessuperclass has method with same name but different parameter/return type(s)Variable name duplicates parameter nameMethod's declared and actual return types mismatchGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-44).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4N' 2P %'+'0'8W..A..Q0   2 ,!,%1Q;EP!UR^e#mo typecheck.ctcErrorprintfexitinternalTCerrorisSubtypeclassesSTnumClassesjointypeExprstrcmptypeExprstypeNameToNumbertypecheckProgrammainBlockSTnumMainBlockLocalsmainExprswholeProgram ( <A M fk  A W bg y    di   ;O z   Ksx  ! kp   2 T   +0 4 Zk   4 9  L  u   4  W h     f k       ,  Z  v              &}    05dy  =Bq >Cr ?Ds !Sin    ?^c $CH "DI Ez   >Cx V[ n <A u     *H _ w    * N kp}    >CT  % ; L ]bky    , 1 B  ^      !!! 2! V! n!! ! !! ""&" B" i" " "" " " # =# Z#_#p# # # # $$ F$K$f$ $ $$ % %% G% o% % % %% & & <&A&R& j&&&&&&&& '''$'D'