vm = [ "stage0/spl_ir.c", "stage0/spl_syscall.c", "stage0/spl_vm.c", ] splc0_part = [ "stage1/spl_comp.c", "stage1/spl_lexer.c", "stage1/spl_type.c", "stage1/spl_parser.c", "stage1/spl_lex_util.c", "stage1/spl_expr.c", "stage1/spl_stmt.c", ] exe = { "spl_cli": ["stage0/spl_cli.c"] + vm, "splc_cli": ["stage1/splc_cli.c"] + vm + splc0_part, "splc0": ["stage1/splc0.c"] + vm + splc0_part, "test": ["stage0/test_spl_vm.c"] + vm, "spl_disasm": ["stage0/spl_disasm.c"] + vm, } pipeline = { "splc0b": {"compiler": "splc0", "runner": "spl_cli"}, "splc0r": {"compiler": "splc0", "runner": "splc_cli"}, "splc0d": {"compiler": "splc0", "runner": "spl_disasm"}, "splc1b": {"compiler": "splc0", "runner": "splc_cli"}, "splc1r": {"compiler": "splc1", "runner": "splc_cli"}, "splc1d": {"compiler": "splc1", "runner": "spl_disasm"}, "splc2b": {"compiler": "splc1", "runner": "splc_cli"}, "splc2r": {"compiler": "splc2", "runner": "splc_cli"}, "splc2d": {"compiler": "splc2", "runner": "spl_disasm"}, "splc3b": {"compiler": "splc2", "runner": "splc_cli"}, "splc3r": {"compiler": "splc3", "runner": "splc_cli"}, "splc3d": {"compiler": "splc3", "runner": "spl_disasm"}, "splc4b": {"compiler": "splc3", "runner": "splc_cli"}, "splc4r": {"compiler": "splc4", "runner": "splc_cli"}, "splc4d": {"compiler": "splc4", "runner": "spl_disasm"}, } spl = { "splc1": {"src": "stage2/splc1.spl", "pipeline": "splc0r"}, "splc2": {"src": "stage2/splc2.spl", "pipeline": "splc1r"}, "splc3": {"src": "stage3/splc3.spl", "pipeline": "splc2r"}, "splc4": {"src": "stage4/splc4.spl", "pipeline": "splc3r"}, }