Commit Graph

46 Commits

Author SHA1 Message Date
cardinal 1de7e2876c refactor(backend): Remove literal pool 2026-06-12 18:51:43 +08:00
cardinal e3aa2e21c0 feat(ast, ir. sema): Add storage class 2026-06-12 18:33:54 +08:00
cardinal 5099bbaab7 refactor(lexer, ast): Rewrite decl with c standard grammar of decl 2026-06-12 18:32:13 +08:00
cardinal 6ff9c804aa fix(ast): Equality prior than rational 2026-06-12 11:42:34 +08:00
cardinal daae12d695 fix(ast): SelfInc use wrong way to recognize 2026-06-12 11:38:28 +08:00
cardinal ef3dcb41aa refactor(ast): Improve error type, remove unnecessary eof judge 2026-06-12 11:11:31 +08:00
cardinal 4dabf32c2a refactor(ast): Split parser to multiple file 2026-06-12 10:26:13 +08:00
cardinal 58a2e69611 chore: Update .gitignore 2026-06-12 10:13:54 +08:00
cardinal b6b45bd27c feat(cfg): Support cfg analyse 2026-06-12 10:04:40 +08:00
cardinal b7c2924e8b feat(ir,backend,frontend): Support for and revise ir array param generate 2026-06-07 22:26:23 +08:00
cardinal 55636e07af refactor(frontend): Move parser to ast folder, use TokenValue::Eof to replace None 2026-06-07 21:31:35 +08:00
cardinal 52f9b67018 fix(backend): Imm value exceeds range 2026-06-06 22:59:15 +08:00
cardinal 669c415bd7 feat(parser,ir,backend): Support array 2026-05-31 22:06:09 +08:00
cardinal c42575c1c6 refactor(sema): Separated from ir 2026-05-31 20:59:18 +08:00
cardinal 1eca4a225b Merge branch 'feat/func-param' 2026-05-19 20:10:35 +08:00
cardinal 3f64f1a965 feat(parser,ir,backend): Fully support func params and disable r0-r3 alloc temporarily 2026-05-19 20:10:11 +08:00
cardinal a5b1cb6c9a Merge branch 'feat/tool' 2026-05-15 11:05:40 +08:00
cardinal bb717c11b7 feat(tool): Add tools to test asm and ir 2026-05-15 11:05:27 +08:00
cardinal ffbf83df11 Merge branch 'feat/cond' 2026-05-15 11:04:43 +08:00
cardinal ef11ae9d96 feat(backend): Support cmp/label/bc/br ir instr 2026-05-15 11:04:05 +08:00
cardinal ace1170646 fix(ir): Adopt to toolchain version 2026-05-14 19:55:28 +08:00
cardinal 5afeeae562 fix(parser): Logic expression (and/or) priority 2026-05-14 19:55:08 +08:00
cardinal 9a6d11a6a8 chore(toolchain): Update rust compiler version 2026-05-14 19:54:08 +08:00
cardinal 7b6eede961 feat(ir, parser): Support if/while/break/logical expr/cmp in parser and ir generator 2026-05-14 15:54:31 +08:00
cardinal 41284dc14e Merge branch 'feat/backend' 2026-05-13 08:52:22 +08:00
cardinal fbdcc8bfcb feat(main): Add asm options 2026-05-13 08:52:03 +08:00
cardinal 6b475fb577 feat(tools): Add test tool and std.c 2026-05-13 08:48:07 +08:00
cardinal af72ed08c3 feat(backend): Add var align 2026-05-12 18:46:01 +08:00
cardinal de712d0bc5 fix(backend): Registers can alloc, ret var and asm format 2026-05-12 14:42:20 +08:00
cardinal 6a45749113 feat(backend): Add backend 2026-05-12 12:29:43 +08:00
cardinal 065bc93bc6 feat(main): add args parse and exec process 2026-05-09 23:37:59 +08:00
cardinal aeb955986e Merge branch 'feat/parser' 2026-05-09 20:23:46 +08:00
cardinal f1e0b3f279 feat(parser): Support func call 2026-05-09 20:23:25 +08:00
cardinal d6a0762f0c Merge branch 'feat/ir' 2026-05-09 20:22:33 +08:00
cardinal b8d678a634 fix(ir): Binary syntax and func var declare 2026-05-09 20:21:50 +08:00
cardinal 04284000d6 chore: Add tools to test ir 2026-05-09 20:21:10 +08:00
cardinal a2243122b0 feat(ir): Impl ir generate 2026-05-09 19:55:23 +08:00
cardinal bed64b29bf Merge branch 'fix/lexer' 2026-05-09 12:34:49 +08:00
cardinal 2f489a3178 fix(lexer): Return not recognized 2026-05-09 12:34:20 +08:00
cardinal 718dece2d9 Merge branch 'feat/parser' 2026-05-09 12:32:58 +08:00
cardinal 3c728fb2b8 feat(ast): Add graph output 2026-05-09 12:29:59 +08:00
cardinal 567057fd76 feat(parser): Impl parser for basic functionality 2026-05-09 11:20:26 +08:00
cardinal 3cb698cc5d fix(util): x-y case not correctly handled 2026-05-09 11:19:50 +08:00
cardinal a0855755f8 Merge branch 'feat/lexer' 2026-05-09 11:17:00 +08:00
cardinal 63a2990826 feat(lexer): Add diagnostic and impl error recovering 2026-05-08 22:54:46 +08:00
cardinal e8b50ae0d7 feat(lexer): Finish lexer parse and add tests 2026-05-06 14:30:32 +08:00