Commit Graph

32 Commits

Author SHA1 Message Date
Bananymous 882607b13d Add LICENSE 2024-04-30 01:34:05 +03:00
Bananymous 0508bde07c Add some code examples that I used as test cases during implementation 2024-04-30 01:29:09 +03:00
Bananymous 83c560b2a9 Add a text document descibing my implementation of Phase 4 2024-04-30 01:28:10 +03:00
Bananymous 3fa0e5f655 Fix check for when stack frame is needed 2024-04-30 00:05:52 +03:00
Bananymous c37e48e8b2 Make boolean variables be only bottom byte of %rax (%al) 2024-04-29 22:23:57 +03:00
Bananymous 8bd65f4c05 Don't save stack frame if function does no calls 2024-04-29 22:21:09 +03:00
Bananymous e70b078b35 Make optimization optional with flag 2024-04-29 22:18:10 +03:00
Bananymous 999cc0d5d1 Fix bugs about bound checking for immediate 2024-04-29 22:00:41 +03:00
Bananymous db4f37709f Optimize consecutive mov/add/sub instructions to single instruction 2024-04-29 22:00:41 +03:00
Bananymous 1e8bdf6cd2 Optimize addition/subtraction of immediate 1 and zeroring registers 2024-04-29 21:34:44 +03:00
Bananymous 2141a17d1e Optimize artithmetic with immediate values 2024-04-29 21:19:16 +03:00
Bananymous 351634e512 Fix bug with temporary registers and optimize binary_op code gen 2024-04-29 21:03:39 +03:00
Bananymous 69ae83efcb Implement basic optimization step for generated assembly 2024-04-29 18:18:42 +03:00
Bananymous 79ca8e78b3 Optimize binary_op generation to use less stack if possible 2024-04-29 18:18:24 +03:00
Bananymous 56bcad6fc1 Generated code is now kept as list of instructions 2024-04-29 17:22:49 +03:00
Bananymous 8c8d294527 Cleanup arguments 2024-04-28 03:22:32 +03:00
Bananymous 8656d74139 Cleanup code and add arguments for compiling code 2024-04-28 03:02:25 +03:00
Bananymous 5c5942629d Implement date attribute reading
This is very inefficient implementation.

This calls strftime with correct modifier and then atoi() to
turn the result into integer
2024-04-28 02:22:32 +03:00
Bananymous 1c1d721f7c Fix attribute_{read,write} types to int 2024-04-28 02:20:35 +03:00
Bananymous 9238eae5ee Implement simple assembly transpiler for phase 4
The code produced is not optimized at all. This fills all other
aspects of phase4 except for date attribute access.
2024-04-28 01:37:24 +03:00
Bananymous 53e945fbe5 Fix true/false naming on unless_expression 2024-04-28 01:35:48 +03:00
Bananymous 04a899247e Implement proper semantic checking for full AST 2024-04-27 00:05:53 +03:00
Bananymous 7a306b7904 Add phase 3 text document 2024-04-13 23:26:13 +03:00
Bananymous 91a3a0ba2e Implement phase 3 semantic checking 2024-04-13 22:56:20 +03:00
Bananymous 004ee25273 Make comments greedy
This allows having multiple comments
2024-03-15 08:35:17 +02:00
Bananymous cb4c194420 Add exception handling for date parsing in lexer 2024-03-04 02:01:52 +02:00
Bananymous 3ae6068215 Phase 02: write required text document 2024-03-04 01:54:59 +02:00
Bananymous edadabc7ba Implement phase 02 syntax analysis 2024-03-04 01:54:42 +02:00
Bananymous d4708ae322 Add README.md for phase 1 2024-02-14 02:41:33 +02:00
Bananymous 9510c0d7a6 Implement phase 1 lexer 2024-02-14 02:32:21 +02:00
Jyke Savia 91716ae12f spring 2024 git template 2023-12-18 07:45:29 +02:00
repolainen c98ef5f0bf Template repository initialization 2023-12-15 11:12:30 +02:00