Exemplo n.º 1
0
    def test_jump_repeated_args(self):

        vtt_assembly = dedent("""
            #PUSH, 0, Var1, Var1, -1
            POP[]
            SWAP[]
            JROF[], (Var1=#Label1)
            DUP[]
            DUP[]
            #Label1:
            DUP[]
            """)

        ft_assembly = transform_assembly(vtt_assembly)

        assert (ft_assembly == dedent("""
                PUSH[] 0
                PUSHW[] 3 3
                PUSH[] -1
                POP[]
                SWAP[]
                JROF[]
                DUP[]
                DUP[]
                DUP[]
                """).strip())
Exemplo n.º 2
0
    def test_jump_forward(self):
        vtt_assembly = dedent("""
            #PUSH, Var1
            JMPR[], (Var1=#Label1)
            DUP[]
            DUP[]
            #PUSH, 1, 2
            DUP[]
            #Label1:
            DUP[]
            DUP[]
            """)

        ft_assembly = transform_assembly(vtt_assembly)

        assert (ft_assembly == dedent("""
                PUSHW[] 7
                JMPR[]
                DUP[]
                DUP[]
                PUSH[] 1 2
                DUP[]
                DUP[]
                DUP[]
                """).strip())
Exemplo n.º 3
0
    def test_jump_back(self):
        vtt_assembly = dedent(
            """
            #PUSH, 1
            DUP[]
            #Label1:
            DUP[]
            DUP[]
            DUP[]
            #PUSH, Var1
            JMPR[], (Var1=#Label1)
            """
        )

        ft_assembly = transform_assembly(vtt_assembly)

        assert (
            ft_assembly
            == dedent(
                """
                PUSH[] 1
                DUP[]
                DUP[]
                DUP[]
                DUP[]
                PUSHW[] -6
                JMPR[]
                """
            ).strip()
        )
Exemplo n.º 4
0
    def test_jump_forward(self):
        vtt_assembly = dedent(
            """
            #PUSH, Var1
            JMPR[], (Var1=#Label1)
            DUP[]
            DUP[]
            #PUSH, 1, 2
            DUP[]
            #Label1:
            DUP[]
            DUP[]
            """
        )

        ft_assembly = transform_assembly(vtt_assembly)

        assert (
            ft_assembly
            == dedent(
                """
                PUSHW[] 7
                JMPR[]
                DUP[]
                DUP[]
                PUSH[] 1 2
                DUP[]
                DUP[]
                DUP[]
                """
            ).strip()
        )
Exemplo n.º 5
0
    def test_jump_repeated_args(self):

        vtt_assembly = dedent(
            """
            #PUSH, 0, Var1, Var1, -1
            POP[]
            SWAP[]
            JROF[], (Var1=#Label1)
            DUP[]
            DUP[]
            #Label1:
            DUP[]
            """
        )

        ft_assembly = transform_assembly(vtt_assembly)

        assert (
            ft_assembly
            == dedent(
                """
                PUSH[] 0
                PUSHW[] 3 3
                PUSH[] -1
                POP[]
                SWAP[]
                JROF[]
                DUP[]
                DUP[]
                DUP[]
                """
            ).strip()
        )
Exemplo n.º 6
0
    def test_jump_mixed_args(self):
        vtt_assembly = dedent(
            """
            #PUSH, Var1, 1
            JROT[], (Var1=#Label1)
            DUP[]
            DUP[]
            DUP[]
            #Label1:
            DUP[]
            """
        )

        ft_assembly = transform_assembly(vtt_assembly)

        assert (
            ft_assembly
            == dedent(
                """
                PUSHW[] 4
                PUSH[] 1
                JROT[]
                DUP[]
                DUP[]
                DUP[]
                DUP[]
                """
            ).strip()
        )
Exemplo n.º 7
0
    def test_end_to_end(self, input_and_expected):
        vtt_assembly, expected = input_and_expected

        ft_assembly = transform_assembly(vtt_assembly)
        ft_program = make_ft_program(ft_assembly)
        generated = pformat_tti(ft_program)

        assert expected == generated
Exemplo n.º 8
0
    def test_end_to_end(self, input_and_expected):
        vtt_assembly, expected = input_and_expected

        ft_assembly = transform_assembly(vtt_assembly)
        ft_program = make_ft_program(ft_assembly)
        generated = pformat_tti(ft_program)

        assert expected == generated
Exemplo n.º 9
0
    def test_jump_mixed_args(self):
        vtt_assembly = dedent("""
            #PUSH, Var1, 1
            JROT[], (Var1=#Label1)
            DUP[]
            DUP[]
            DUP[]
            #Label1:
            DUP[]
            """)

        ft_assembly = transform_assembly(vtt_assembly)

        assert (ft_assembly == dedent("""
                PUSHW[] 4
                PUSH[] 1
                JROT[]
                DUP[]
                DUP[]
                DUP[]
                DUP[]
                """).strip())
Exemplo n.º 10
0
    def test_jump_back(self):
        vtt_assembly = dedent("""
            #PUSH, 1
            DUP[]
            #Label1:
            DUP[]
            DUP[]
            DUP[]
            #PUSH, Var1
            JMPR[], (Var1=#Label1)
            """)

        ft_assembly = transform_assembly(vtt_assembly)

        assert (ft_assembly == dedent("""
                PUSH[] 1
                DUP[]
                DUP[]
                DUP[]
                DUP[]
                PUSHW[] -6
                JMPR[]
                """).strip())
Exemplo n.º 11
0
 def test_ignore_overlap(self):
     ft_assembly = transform_assembly("OVERLAP[]")
     assert not ft_assembly
Exemplo n.º 12
0
 def test_empty(self):
     assert not transform_assembly("")
Exemplo n.º 13
0
 def test_ignore_overlap(self):
     ft_assembly = transform_assembly("OVERLAP[]")
     assert not ft_assembly
Exemplo n.º 14
0
 def test_empty(self):
     assert not transform_assembly("")