132 Commits

Author SHA1 Message Date
belka a00f0d57b8 Lower global static array and record access 2026-01-30 23:21:19 +01:00
belka 08b5325f58 Generate pseudo variables where possible 2026-01-28 20:51:04 +01:00
belka f0f0f431ba Parse more than 7 procedure arguments 2026-01-22 16:05:34 +01:00
belka ec83bbcc1e Use static arrays as instruction operands 2026-01-19 12:45:52 +01:00
belka cfef0550ca Implement array access expressions 2026-01-14 19:48:28 +01:00
belka 30e18517ab Fix static arrays in type expressions 2026-01-10 12:11:38 +01:00
belka 396c329b63 Calculate record field sizes 2026-01-07 17:07:20 +01:00
belka e4257b08be Allow enumeration field types 2026-01-05 18:24:03 +01:00
belka 955161b36e Use ninja for build 2026-01-04 21:04:43 +01:00
belka f86d06236c Remove support for hardware registers in TAC 2026-01-04 13:04:22 +01:00
belka 58e708f44c Implement type size trait 2026-01-01 21:52:14 +01:00
belka 3db3a0f20e Make designator independent of hardware registers 2025-12-29 00:33:32 +01:00
belka b4eabfae4e Use pseudo register in binary expressions 2025-12-22 20:38:26 +01:00
belka 3a8bf8ae88 Preserve passed procedure parameters 2025-12-17 12:00:25 +01:00
belka 1cf71f1a5f Move procedure call register allocation to RTL 2025-12-12 18:32:01 +01:00
belka 305032b534 Assign stack offset to local variables in a later pass 2025-12-09 18:49:11 +01:00
belka cc8f815337 Describe the type system 2025-12-04 18:57:51 +01:00
belka 8eb87757a0 Remove modula-2 definitions 2025-12-03 09:36:26 +01:00
belka 1c2a8e6da8 Add boolean literals and type 2025-12-02 22:28:40 +01:00
belka 23b6f074c7 Merge GCC frontend into the branch 2025-12-02 17:14:18 +01:00
belka 5f7d839741 Replace getters and setters with field access 2025-11-30 19:41:16 +01:00
belka eb691db24a Allow parsing multiple designator expressions in a row 2025-11-28 12:42:51 +01:00
belka f35bdd07c2 Annotate record field access expressions 2025-11-25 17:49:55 +01:00
belka b5b129a90c Build documentation 2025-11-25 16:20:48 +01:00
belka c20d9b7240 Set expression type for enumeration values 2025-11-25 08:03:05 +01:00
belka c3eff02f8d Visit expressions in the type checker 2025-11-22 23:27:00 +01:00
belka 52b9152158 Support nil literals 2025-11-20 15:43:08 +01:00
belka fd9e8a36b5 Add jump_if_not_zero and bnez instructions 2025-11-19 13:05:51 +01:00
belka 76f55d0796 Rename RTL instructions to Risc-V versions 2025-11-18 20:10:34 +01:00
belka 8da9241233 Use custom 3-address code operands 2025-11-16 09:26:13 +01:00
belka cc3acdfd12 Handle immediate values in RTL 2025-11-13 20:40:17 +01:00
belka c24373927c Add assembly generation stage 2025-11-12 20:07:24 +01:00
belka d144cb2101 Move stages into subdirectories 2025-11-08 11:07:39 +01:00
belka 0b51634566 Generate record accessors automatically 2025-11-07 09:57:44 +01:00
belka 63c211a8e9 Rename elna_generator to elna_tac 2025-11-03 16:16:48 +01:00
belka 64dc00c71f Make TAC generation stage 2025-11-02 08:42:39 +01:00
belka a984d2ac93 Provide binary and unary TAC operations 2025-11-01 07:20:42 +01:00
belka 788cb4253f Add code generator procedures and enumerations 2025-10-27 22:30:28 +01:00
belka 37a698da91 Allocate bigger memory regions dynamically 2025-10-25 21:23:47 +02:00
belka b206322455 Parse type declarations and variable part 2025-10-24 16:07:57 +02:00
belka 70eab55cde Parse statement lists 2025-10-19 12:45:55 +02:00
belka c6531ba398 Extract simple expression parser 2025-10-10 13:53:54 +02:00
belka af9ad5b712 Implement enumeration 2025-10-05 11:13:24 +02:00
belka 2519b3f9e9 Switch completely to the table based lexer 2025-09-29 16:55:38 +02:00
belka 8ccb635302 Make begin optional in procedures with only return 2025-09-25 10:38:19 +02:00
belka 0cc41f2d83 Implement elsif for if-statements 2025-09-23 22:22:38 +02:00
belka 6e9086aa26 Support multiline comments 2025-09-20 18:22:54 +02:00
belka 1e97b660bf Support named local variables and parameters 2025-09-18 13:01:00 +02:00
belka c5f2986120 Do not support assembly inline statements 2025-09-15 12:50:32 +02:00
belka ee3b733a81 Implement if-else 2025-09-13 21:15:09 +02:00