Exemplo n.º 1
0
    def test_add_token_rollback(self):
        lexer = Lexer('123')
        lexer.offset = 4

        lexer.add_token(TokenType.OP_PLUS, rollback=True)

        self.assertEqual(lexer.offset, 3)
Exemplo n.º 2
0
    def test_add_token_without_value(self):
        lexer = Lexer('123')
        lexer.token_buffer = '12345'

        lexer.add_token(TokenType.IDENTIFIER, with_value=False)

        self.assertEqual(TokenType.IDENTIFIER, lexer.tokens[0].type)
        self.assertEqual('', lexer.tokens[0].value)
        self.assertEqual('', lexer.token_buffer)
Exemplo n.º 3
0
    def test_add_token_no_rollback(self):
        lexer = Lexer('123')
        lexer.token_buffer = '12345'
        lexer.state = LexingState.LIT_STR
        lexer.offset = 4

        lexer.add_token(TokenType.OP_PLUS)

        self.assertEqual(1, len(lexer.tokens))
        self.assertEqual('', lexer.token_buffer)
        self.assertEqual(LexingState.START, lexer.state)
        self.assertEqual(4, lexer.offset)
Exemplo n.º 4
0
    def test_add_token_keep_state(self):
        lexer = Lexer('123')

        lexer.add_token(TokenType.OP_PLUS, keep_state=True)

        self.assertEqual(LexingState.START, lexer.state)