mirror of
https://github.com/usatiuk/nand2tetris.git
synced 2025-10-29 00:27:49 +01:00
415 lines
11 KiB
XML
415 lines
11 KiB
XML
<tokens>
|
|
<keyword> class </keyword>
|
|
<identifier> Main </identifier>
|
|
<symbol> { </symbol>
|
|
<keyword> function </keyword>
|
|
<keyword> void </keyword>
|
|
<identifier> main </identifier>
|
|
<symbol> ( </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> { </symbol>
|
|
<keyword> var </keyword>
|
|
<identifier> Array </identifier>
|
|
<identifier> a </identifier>
|
|
<symbol> , </symbol>
|
|
<identifier> b </identifier>
|
|
<symbol> , </symbol>
|
|
<identifier> c </identifier>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> Array </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> new </identifier>
|
|
<symbol> ( </symbol>
|
|
<integerConstant> 10 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> b </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> Array </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> new </identifier>
|
|
<symbol> ( </symbol>
|
|
<integerConstant> 5 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> Array </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> new </identifier>
|
|
<symbol> ( </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<integerConstant> 2 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 4 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<integerConstant> 8 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 5 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<integerConstant> 4 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> + </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ] </symbol>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 5 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ] </symbol>
|
|
<symbol> * </symbol>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<symbol> ( </symbol>
|
|
<symbol> ( </symbol>
|
|
<integerConstant> 7 </integerConstant>
|
|
<symbol> - </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> - </symbol>
|
|
<identifier> Main </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> double </identifier>
|
|
<symbol> ( </symbol>
|
|
<integerConstant> 2 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> + </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 0 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<keyword> null </keyword>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> c </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 0 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printString </identifier>
|
|
<symbol> ( </symbol>
|
|
<stringConstant> Test 1: expected result: 5; actual result: </stringConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printInt </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 2 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> println </identifier>
|
|
<symbol> ( </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printString </identifier>
|
|
<symbol> ( </symbol>
|
|
<stringConstant> Test 2: expected result: 40; actual result: </stringConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printInt </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 5 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> println </identifier>
|
|
<symbol> ( </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printString </identifier>
|
|
<symbol> ( </symbol>
|
|
<stringConstant> Test 3: expected result: 0; actual result: </stringConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printInt </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> c </identifier>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> println </identifier>
|
|
<symbol> ( </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> = </symbol>
|
|
<keyword> null </keyword>
|
|
<symbol> ; </symbol>
|
|
<keyword> if </keyword>
|
|
<symbol> ( </symbol>
|
|
<identifier> c </identifier>
|
|
<symbol> = </symbol>
|
|
<keyword> null </keyword>
|
|
<symbol> ) </symbol>
|
|
<symbol> { </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Main </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> fill </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> , </symbol>
|
|
<integerConstant> 10 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<integerConstant> 33 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 7 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> c </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<integerConstant> 77 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> b </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> + </symbol>
|
|
<identifier> c </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ; </symbol>
|
|
<symbol> } </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printString </identifier>
|
|
<symbol> ( </symbol>
|
|
<stringConstant> Test 4: expected result: 77; actual result: </stringConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printInt </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> c </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> println </identifier>
|
|
<symbol> ( </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printString </identifier>
|
|
<symbol> ( </symbol>
|
|
<stringConstant> Test 5: expected result: 110; actual result: </stringConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> printInt </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> b </identifier>
|
|
<symbol> [ </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ] </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> do </keyword>
|
|
<identifier> Output </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> println </identifier>
|
|
<symbol> ( </symbol>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<keyword> return </keyword>
|
|
<symbol> ; </symbol>
|
|
<symbol> } </symbol>
|
|
<keyword> function </keyword>
|
|
<keyword> int </keyword>
|
|
<identifier> double </identifier>
|
|
<symbol> ( </symbol>
|
|
<keyword> int </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> ) </symbol>
|
|
<symbol> { </symbol>
|
|
<keyword> return </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> * </symbol>
|
|
<integerConstant> 2 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<symbol> } </symbol>
|
|
<keyword> function </keyword>
|
|
<keyword> void </keyword>
|
|
<identifier> fill </identifier>
|
|
<symbol> ( </symbol>
|
|
<identifier> Array </identifier>
|
|
<identifier> a </identifier>
|
|
<symbol> , </symbol>
|
|
<keyword> int </keyword>
|
|
<identifier> size </identifier>
|
|
<symbol> ) </symbol>
|
|
<symbol> { </symbol>
|
|
<keyword> while </keyword>
|
|
<symbol> ( </symbol>
|
|
<identifier> size </identifier>
|
|
<symbol> > </symbol>
|
|
<integerConstant> 0 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> { </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> size </identifier>
|
|
<symbol> = </symbol>
|
|
<identifier> size </identifier>
|
|
<symbol> - </symbol>
|
|
<integerConstant> 1 </integerConstant>
|
|
<symbol> ; </symbol>
|
|
<keyword> let </keyword>
|
|
<identifier> a </identifier>
|
|
<symbol> [ </symbol>
|
|
<identifier> size </identifier>
|
|
<symbol> ] </symbol>
|
|
<symbol> = </symbol>
|
|
<identifier> Array </identifier>
|
|
<symbol> . </symbol>
|
|
<identifier> new </identifier>
|
|
<symbol> ( </symbol>
|
|
<integerConstant> 3 </integerConstant>
|
|
<symbol> ) </symbol>
|
|
<symbol> ; </symbol>
|
|
<symbol> } </symbol>
|
|
<keyword> return </keyword>
|
|
<symbol> ; </symbol>
|
|
<symbol> } </symbol>
|
|
<symbol> } </symbol>
|
|
</tokens>
|