def test_incr_withlabel_address(): code = "incr *mylabel" with StringIO(code) as f: ast = parser.parse_it(f) assert type(ast[0]) == parser.IncrOp assert ast[0].label_name == parser.AddressOf("mylabel")
def test_decr_withnumber_address(): code = "decr *4" with StringIO(code) as f: ast = parser.parse_it(f) assert type(ast[0]) == parser.DecrOp assert ast[0].label_name == parser.AddressOf("4")
def test_assign_from_addressof_tile(): code = "emp = *3" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].src == parser.AddressOf("3") assert ast[0].dst == "emp"
def test_compat_copyto_addressof_aliased(): code = "copyto *aliased" with StringIO(code) as f: ast = parser.parse_it(f) assert type(ast[0]) == parser.AssignOp assert ast[0].src == "emp" assert ast[0].dst == parser.AddressOf("aliased")
def test_compat_copyto_addressof_tilenumber(): code = "copyto [0]" with StringIO(code) as f: ast = parser.parse_it(f) assert type(ast[0]) == parser.AssignOp assert ast[0].src == "emp" assert ast[0].dst == parser.AddressOf("0")
def test_compat_sub_address_of_number(): code = "sub *5" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].subtraend == parser.AddressOf("5")
def test_compat_sub_address_of_tile(): code = "sub *tile" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].subtraend == parser.AddressOf("tile")
def test_compat_add_address_of_number(): code = "add *3" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].addend == parser.AddressOf("3")
def test_compat_add_oldaddress_of_tile(): code = "add [test]" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].addend == parser.AddressOf("test")
def test_add_oldaddress_of_number(): code = "emp += [3]" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].addend == parser.AddressOf("3")
def test_add_address_of_tile(): code = "emp += *test" with StringIO(code) as f: ast = parser.parse_it(f) assert ast[0].addend == parser.AddressOf("test")