- function declaration
- function call
- function return
- function with arguementa
- if, else, elif
- while loop
- continue
- break
- Implement built-in functions
- references
- reference as function parameter
- assign variable from refrence
- assign reference from variable
- refrence variables
- maybe I will need to declare arguments as variables inside function declaration
-
check all conditions to be boolean
-
for loops
-
use return with refrence
-
math operations with refrence
-
check function existance in generate_ir
-
import files in tokenize
-
data types: int, char, float, bigInt, bigFloat
-
arrays
-
structs: attributes, memeber function, operator overloading
-
logic operator for all data types
-
math operator for all data types
-
assign struct with value, and with refrence
-
try, catch
-
switch, case
-
input, output, filesystem
-
check functions compatibilty
-
test with c libraries
-
test function with lot of arguments
-
test all possible cases that can be handled, so the code does not crash
-
implement output
-
(To be checked if neccessary) set registers for function argument , in generate_ir
-
every loop inside source code should check found_error
-
void function need to be checked
-
global variable
-
when you finish the code check this approach, setting ptr at the end before generatin assembly code
-
to handle segvaults, try implement an approach that fork() then execute the program inside child process and read from its stderr
-
check all dat type are together in all places
-
try using memset/memcpy to assign struct, it would be better
-
This will generate and print:
- Abstract Syntax Tree (AST)
- Intermediate Representation (IR)
- Assembly Code
- fix for: AddressSanitizer:DEADLYSIGNAL
- echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
-
Check:
- Alfred V aho
- Yacc
- Ll1