from io import StringIO from assembler.tokenize import Tokenizer from assembler.context import FileContext def test_tokenize_1(): data = ''' ldi r0, 0xfefe ldi r1, 0xefef add r0, r1 ''' data = StringIO(data) tokenizer = Tokenizer(FileContext(data)) result = list(tokenizer) assert result == [ "ldi", " ", "r0", ",", "0xfefe", "\n" , "ldi", " ", "r1", ",", "0xefef", "\n" , "add", " ", "r0", ",", "r1", "\n" ] def test_tokenize_2(): data = ''' ; This is a comment ldi r0, 0xfefe ''' data = StringIO(data) tokenizer = Tokenizer(FileContext(data)) result = list(tokenizer) assert result == [ ";", "This", " ", "is", " ", "a", " ", "comment", "\n" , "ldi", " ", "r0", ",", "0xfefe", "\n" ] def test_tokenize_3(): data = ''' ldi r0, 0xfefe string: .set ['h', 'e', 'l', 'l', 'o'] ''' data = StringIO(data) tokenizer = Tokenizer(FileContext(data)) result = list(tokenizer) assert result == [ "ldi", " ", "r0", ",", "0xfefe", "\n" , "string", ":", "\n" , ".", "set", " ", "[", "'h'", ",", "'e'", ",", "'l'", ",", "'l'", ",", "'o'", "]", "\n" ] def test_tokenize_4(): data = ''' ldi r0, 0xfefe test_mark: ldi r1, 0xefef ''' data = StringIO(data) tokenizer = Tokenizer(FileContext(data)) result = list(tokenizer) assert result == [ "ldi", " ", "r0", ",", "0xfefe", "\n" , "test_mark", ":", "\n" , "ldi", " ", "r1", ",", "0xefef", "\n" ]