Esempio n. 1
0
    def test_read_local_var(self):

        test_string = "a + b / c * d >= Loc4al * _Var2 + 2; "

        token_list = [
            Token(TokenKind.IDENTIFIER, "a"),
            Token(TokenKind.SYMBOL, "+"),
            Token(TokenKind.IDENTIFIER, "b"),
            Token(TokenKind.SYMBOL, "/"),
            Token(TokenKind.IDENTIFIER, "c"),
            Token(TokenKind.SYMBOL, "*"),
            Token(TokenKind.IDENTIFIER, "d"),
            Token(TokenKind.SYMBOL, ">="),
            Token(TokenKind.IDENTIFIER, "Loc4al"),
            Token(TokenKind.SYMBOL, "*"),
            Token(TokenKind.IDENTIFIER, "_Var2"),
            Token(TokenKind.SYMBOL, "+"),
            Token(TokenKind.NUMBER, "2"),
            Token(TokenKind.SYMBOL, ";"),
            Token(TokenKind.EOF),
        ]

        reduce(linked_list_helper, token_list)
        expected_token = token_list[0]

        token = tokenize(test_string)

        while token:
            assert str(token) == str(expected_token)
            token = token.next
            expected_token = expected_token.next
Esempio n. 2
0
    def test_read_symbols(self):

        test_string = "== != <= >= < > + - * / ( )"

        token_list = [
            Token(TokenKind.SYMBOL, "=="),
            Token(TokenKind.SYMBOL, "!="),
            Token(TokenKind.SYMBOL, "<="),
            Token(TokenKind.SYMBOL, ">="),
            Token(TokenKind.SYMBOL, "<"),
            Token(TokenKind.SYMBOL, ">"),
            Token(TokenKind.SYMBOL, "+"),
            Token(TokenKind.SYMBOL, "-"),
            Token(TokenKind.SYMBOL, "*"),
            Token(TokenKind.SYMBOL, "/"),
            Token(TokenKind.SYMBOL, "("),
            Token(TokenKind.SYMBOL, ")"),
            Token(TokenKind.EOF),
        ]

        reduce(linked_list_helper, token_list)
        expected_token = token_list[0]

        token = tokenize(test_string)

        while token:
            assert str(token) == str(expected_token)
            token = token.next
            expected_token = expected_token.next
Esempio n. 3
0
    def test_read_single_string(self):
        test_string = "(1 + 3) * 2"

        token_list = [
            Token(TokenKind.SYMBOL, "("),
            Token(TokenKind.NUMBER, "1"),
            Token(TokenKind.SYMBOL, "+"),
            Token(TokenKind.NUMBER, "3"),
            Token(TokenKind.SYMBOL, ")"),
            Token(TokenKind.SYMBOL, "*"),
            Token(TokenKind.NUMBER, "2"),
            Token(TokenKind.EOF),
        ]

        reduce(linked_list_helper, token_list)
        expected_token = token_list[0]

        token = tokenize(test_string)

        while token:
            assert str(token) == str(expected_token)
            token = token.next
            expected_token = expected_token.next
Esempio n. 4
0
    def test_read_multiple_string(self):

        test_string = "112 == 32 + 160 / 2"

        token_list = [
            Token(TokenKind.NUMBER, "112"),
            Token(TokenKind.SYMBOL, "=="),
            Token(TokenKind.NUMBER, "32"),
            Token(TokenKind.SYMBOL, "+"),
            Token(TokenKind.NUMBER, "160"),
            Token(TokenKind.SYMBOL, "/"),
            Token(TokenKind.NUMBER, "2"),
            Token(TokenKind.EOF),
        ]

        reduce(linked_list_helper, token_list)
        expected_token = token_list[0]

        token = tokenize(test_string)

        while token:
            assert str(token) == str(expected_token)
            token = token.next
            expected_token = expected_token.next