1212 lines
38 KiB
XML
1212 lines
38 KiB
XML
![]() |
<class>
|
||
|
<keyword> class </keyword>
|
||
|
<identifier> Square </identifier>
|
||
|
<symbol> { </symbol>
|
||
|
<classVarDec>
|
||
|
<keyword> field </keyword>
|
||
|
<keyword> int </keyword>
|
||
|
<identifier> x </identifier>
|
||
|
<symbol> , </symbol>
|
||
|
<identifier> y </identifier>
|
||
|
<symbol> ; </symbol>
|
||
|
</classVarDec>
|
||
|
<classVarDec>
|
||
|
<keyword> field </keyword>
|
||
|
<keyword> int </keyword>
|
||
|
<identifier> size </identifier>
|
||
|
<symbol> ; </symbol>
|
||
|
</classVarDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> constructor </keyword>
|
||
|
<identifier> Square </identifier>
|
||
|
<identifier> new </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
<keyword> int </keyword>
|
||
|
<identifier> Ax </identifier>
|
||
|
<symbol> , </symbol>
|
||
|
<keyword> int </keyword>
|
||
|
<identifier> Ay </identifier>
|
||
|
<symbol> , </symbol>
|
||
|
<keyword> int </keyword>
|
||
|
<identifier> Asize </identifier>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> x </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> Ax </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> y </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> Ay </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> size </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> Asize </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> draw </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
</expressionList>
|
||
|
<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> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> dispose </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Memory </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> deAlloc </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> this </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> draw </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> true </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> erase </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> false </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> 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> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> 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> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> 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> erase </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> size </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> draw </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</ifStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> decSize </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<ifStatement>
|
||
|
<keyword> if </keyword>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
<symbol> > </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> erase </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> size </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> draw </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</ifStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> moveUp </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<ifStatement>
|
||
|
<keyword> if </keyword>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> > </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> false </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> y </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> true </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</ifStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> 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> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> 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> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> false </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> y </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> true </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</ifStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> moveLeft </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<parameterList>
|
||
|
</parameterList>
|
||
|
<symbol> ) </symbol>
|
||
|
<subroutineBody>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<ifStatement>
|
||
|
<keyword> if </keyword>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> > </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> { </symbol>
|
||
|
<statements>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> false </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> x </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> true </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</ifStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<subroutineDec>
|
||
|
<keyword> method </keyword>
|
||
|
<keyword> void </keyword>
|
||
|
<identifier> 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> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> 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> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> false </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<letStatement>
|
||
|
<keyword> let </keyword>
|
||
|
<identifier> x </identifier>
|
||
|
<symbol> = </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 2 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ; </symbol>
|
||
|
</letStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> setColor </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<keyword> true </keyword>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
<doStatement>
|
||
|
<keyword> do </keyword>
|
||
|
<identifier> Screen </identifier>
|
||
|
<symbol> . </symbol>
|
||
|
<identifier> drawRectangle </identifier>
|
||
|
<symbol> ( </symbol>
|
||
|
<expressionList>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<symbol> ( </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> ) </symbol>
|
||
|
</term>
|
||
|
<symbol> - </symbol>
|
||
|
<term>
|
||
|
<integerConstant> 1 </integerConstant>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> x </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
<symbol> , </symbol>
|
||
|
<expression>
|
||
|
<term>
|
||
|
<identifier> y </identifier>
|
||
|
</term>
|
||
|
<symbol> + </symbol>
|
||
|
<term>
|
||
|
<identifier> size </identifier>
|
||
|
</term>
|
||
|
</expression>
|
||
|
</expressionList>
|
||
|
<symbol> ) </symbol>
|
||
|
<symbol> ; </symbol>
|
||
|
</doStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</ifStatement>
|
||
|
<returnStatement>
|
||
|
<keyword> return </keyword>
|
||
|
<symbol> ; </symbol>
|
||
|
</returnStatement>
|
||
|
</statements>
|
||
|
<symbol> } </symbol>
|
||
|
</subroutineBody>
|
||
|
</subroutineDec>
|
||
|
<symbol> } </symbol>
|
||
|
</class>
|