diff options
author | Melody Horn <melody@boringcactus.com> | 2020-11-05 01:27:58 -0700 |
---|---|---|
committer | Melody Horn <melody@boringcactus.com> | 2020-11-05 01:27:58 -0700 |
commit | b6258d36b6534d521e9cdf1307665c38e5ae409d (patch) | |
tree | 7e98020964173869f2799533553bcdcd1f64ea1a /tests | |
parent | 9dfc552c0703c5e14ea472eb5431719b2e0d6400 (diff) | |
download | reference-compiler-b6258d36b6534d521e9cdf1307665c38e5ae409d.tar.gz reference-compiler-b6258d36b6534d521e9cdf1307665c38e5ae409d.zip |
compile based on the fancy new AST
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_hello_world.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/tests/test_hello_world.py b/tests/test_hello_world.py index 594ab4f..0377392 100644 --- a/tests/test_hello_world.py +++ b/tests/test_hello_world.py @@ -1,12 +1,12 @@ import unittest -from crowbar_reference_compiler import compile_to_ssa, parse_header, parse_implementation, scan +from crowbar_reference_compiler import build_ast, build_ssa, parse_header, parse_implementation, scan class TestHelloWorld(unittest.TestCase): def test_ssa(self): code = r""" -include "stdio.hro"; +//include "stdio.hro"; int32 main() { printf("Hello, world!\n"); @@ -15,14 +15,17 @@ int32 main() { """ tokens = scan(code) parse_tree = parse_implementation(tokens) - actual_ssa = compile_to_ssa(parse_tree) + ast = build_ast(parse_tree, []) + actual_ssa = build_ssa(ast) expected_ssa = r""" data $data0 = { b "Hello, world!\n", b 0 } export function w $main() { @start - call $printf(l $data0, ...) - ret 0 + %t0 =l copy $data0 + call $printf(l %t0, ...) + %t1 =w copy 0 + ret %t1 } """.strip() self.assertEqual(expected_ssa, actual_ssa) |