mirror of
https://github.com/usatiuk/nand2tetris.git
synced 2025-10-29 00:27:49 +01:00
729 lines
24 KiB
XML
729 lines
24 KiB
XML
<class>
|
|
<keyword > class </keyword>
|
|
<identifier class, defined> Square </identifier>
|
|
<symbol > { </symbol>
|
|
<classVarDec>
|
|
<keyword > field </keyword>
|
|
<keyword > int </keyword>
|
|
<identifier name=x type=int kind=Field index=0 declared> x </identifier>
|
|
<symbol > , </symbol>
|
|
<identifier name=y type=int kind=Field index=1 declared> y </identifier>
|
|
<symbol > ; </symbol>
|
|
</classVarDec>
|
|
<classVarDec>
|
|
<keyword > field </keyword>
|
|
<keyword > int </keyword>
|
|
<identifier name=size type=int kind=Field index=2 declared> size </identifier>
|
|
<symbol > ; </symbol>
|
|
</classVarDec>
|
|
<subroutineDec>
|
|
<identifier > Square </identifier>
|
|
<identifier subroutine, defined> new </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
<keyword > int </keyword>
|
|
<identifier name=Ax type=int kind=Arg index=0 declared> Ax </identifier>
|
|
<symbol > , </symbol>
|
|
<keyword > int </keyword>
|
|
<identifier name=Ay type=int kind=Arg index=1 declared> Ay </identifier>
|
|
<symbol > , </symbol>
|
|
<keyword > int </keyword>
|
|
<identifier name=Asize type=int kind=Arg index=2 declared> Asize </identifier>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=Ax type=int kind=Arg index=0 used> Ax </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=Ay type=int kind=Arg index=1 used> Ay </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=Asize type=int kind=Arg index=2 used> Asize </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier function, used> draw </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<expression>
|
|
<term>
|
|
<keyword > this </keyword>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> dispose </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Memory </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> deAlloc </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> draw </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> erase </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> incSize </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<ifStatement>
|
|
<keyword > if </keyword>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
</term>
|
|
<symbol > < </symbol>
|
|
<term>
|
|
<integerConstant > 254 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
</term>
|
|
<symbol > & </symbol>
|
|
<term>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
</term>
|
|
<symbol > < </symbol>
|
|
<term>
|
|
<integerConstant > 510 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier function, used> erase </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier function, used> draw </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</ifStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> decSize </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<ifStatement>
|
|
<keyword > if </keyword>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
<symbol > > </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier function, used> erase </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
<symbol > - </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier function, used> draw </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</ifStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> moveUp </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<ifStatement>
|
|
<keyword > if </keyword>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
</term>
|
|
<symbol > > </symbol>
|
|
<term>
|
|
<integerConstant > 1 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
</term>
|
|
<symbol > - </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</ifStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> moveDown </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<ifStatement>
|
|
<keyword > if </keyword>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
</term>
|
|
<symbol > < </symbol>
|
|
<term>
|
|
<integerConstant > 254 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=y type=int kind=Field index=1 used> y </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</ifStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> moveLeft </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<ifStatement>
|
|
<keyword > if </keyword>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
</term>
|
|
<symbol > > </symbol>
|
|
<term>
|
|
<integerConstant > 1 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
</term>
|
|
<symbol > - </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</ifStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<subroutineDec>
|
|
<keyword > void </keyword>
|
|
<identifier subroutine, defined> moveRight </identifier>
|
|
<symbol > ( </symbol>
|
|
<parameterList>
|
|
</parameterList>
|
|
<symbol > ) </symbol>
|
|
<subroutineBody>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<ifStatement>
|
|
<keyword > if </keyword>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<symbol > ( </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<identifier name=size type=int kind=Field index=2 used> size </identifier>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
</term>
|
|
<symbol > < </symbol>
|
|
<term>
|
|
<integerConstant > 510 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ) </symbol>
|
|
<symbol > { </symbol>
|
|
<statements>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<letStatement>
|
|
<keyword > let </keyword>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
<symbol > = </symbol>
|
|
<expression>
|
|
<term>
|
|
<identifier name=x type=int kind=Field index=0 used> x </identifier>
|
|
</term>
|
|
<symbol > + </symbol>
|
|
<term>
|
|
<integerConstant > 2 </integerConstant>
|
|
</term>
|
|
</expression>
|
|
<symbol > ; </symbol>
|
|
</letStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> setColor </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
<doStatement>
|
|
<keyword > do </keyword>
|
|
<identifier class, used> Screen </identifier>
|
|
<symbol > . </symbol>
|
|
<identifier function, used> drawRectangle </identifier>
|
|
<symbol > ( </symbol>
|
|
<symbol > ) </symbol>
|
|
<symbol > ; </symbol>
|
|
</doStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</ifStatement>
|
|
<returnStatement>
|
|
<keyword > return </keyword>
|
|
<symbol > ; </symbol>
|
|
</returnStatement>
|
|
</statements>
|
|
<symbol > } </symbol>
|
|
</subroutineBody>
|
|
</subroutineDec>
|
|
<symbol > } </symbol>
|
|
</class>
|