示例#1
0
 def test_print_symbol_table_corect(self, print_mock):
     statement = Statement("POLCAT EQU $FFEE")
     program = Program()
     program.save_symbol(0, statement)
     program.print_symbol_table()
     self.assertEqual([call("-- Symbol Table --"),
                       call("$FFEE POLCAT")], print_mock.mock_calls)
示例#2
0
 def test_save_symbol_raises_if_redefined(self):
     statement = Statement("BLAH    JMP $FFFF")
     program = Program()
     program.symbol_table = {"BLAH": 1234}
     with self.assertRaises(TranslationError) as context:
         program.save_symbol(0, statement)
     self.assertEqual("'Label [BLAH] redefined'", str(context.exception))
示例#3
0
 def test_save_symbol_does_nothing_if_no_label(self):
     statement = Statement("    JMP $FFFF")
     program = Program()
     program.symbol_table = {
         "BLAH": 1234
     }
     program.save_symbol(0, statement)
     self.assertEqual({"BLAH": 1234}, program.symbol_table)
示例#4
0
 def test_save_symbol_saves_index_of_statement(self):
     statement = Statement("START   JMP $FFEE")
     program = Program()
     program.save_symbol(0x35, statement)
     self.assertEqual("35", program.symbol_table["START"].hex())
示例#5
0
 def test_save_symbol_saves_value(self):
     statement = Statement("POLCAT EQU $FFEE")
     program = Program()
     program.save_symbol(0, statement)
     self.assertEqual("FFEE", program.symbol_table["POLCAT"].hex())