122 Commits (master)

Author SHA1 Message Date
Luna 5771877457 fix llvm_table shenanigans 3 years ago
Luna 2357de5a04 llvm10 time 3 years ago
Luna 5713df2a8b more fixes 3 years ago
Luna b0ddffd5fe hashmap changes, part 2 3 years ago
Luna 0265eddb2e hashmap changes 3 years ago
Luna 56be677c7a at() -> items[] 3 years ago
Luna e0f0ae7f24 toSlice -> items 3 years ago
Luna 03561ebe6a zig fmt pass 3 years ago
Luna 3a55f8dbcc Update README install/use instructions 3 years ago
Luna 74e6beda67 more fixes for latest zig 3 years ago
Luna 049a388660 more fixes for latest zig 3 years ago
Luna a623d9b2ca minor fixes on main file 3 years ago
Luna 5ae47fb962 zig fmt pass 3 years ago
Luna 7976b64cf6 tuple-inator pass 3 years ago
Luna cf22d47e13 ast_printer: tuple-ify 3 years ago
Luna ebf4af6537 fixes for latest zig 4 years ago
Luna 9a9008247f move x86 to codegen.x86 4 years ago
Luna e42a97e192 use 'as' builtin
- move src/codegen.zig to src/codegen/llvm.zig
4 years ago
Luna 3ddc6c61c8 add basic x86 struct 4 years ago
Luna c743c804be analysis: check current_scope being null for VarDecl 4 years ago
Luna 192baf0725 analysis: remove 'else', replace by dedicated Block
It isn't possible to make Blocks at root scope. the parser does not
allow such constructions, however, it is still a Node, and it should be
handled accordingly.
4 years ago
Luna 5348e2b5c4 remove Stmt as an AST node
it was only used for printing purposes, even though we can use the
existing printStmt() function.
4 years ago
Luna 9d1c9cab7f analysis: fix ret type 4 years ago
Luna d69a64dbfb analysis: add bump-dump scope to loop analysis 4 years ago
Luna 881833b187 s/TypeSolver/Analyzer 4 years ago
Luna 5c58ac0238 analysis: add contextual checks for Assign expr 4 years ago
Luna 809dad1095 codegen: add Grouping expr support
- entry: return value of rayoko main
4 years ago
Luna 34481c8ea8 main: call gcc to make out executable 4 years ago
Luna 88e505b524 parser: rename main function to __rayoko_main 4 years ago
Luna f00741deca add main() to example 4 years ago
Luna f84eb16490 codegen: emit Store for Assign exprs 4 years ago
Luna 5d8efd657f analysis: add analysis of Assign expressions 4 years ago
Luna 2fea745df4 codegen: use current_scope's meta_map instead of resolveVarType 4 years ago
Luna f2520e7d02 change bits and pieces everywhere about var meta 4 years ago
Luna a95d0e7fd8 comp_ctx: make resolveVarType's return type be nullable
- add a parameter to prevent unwanted side-effects of resolveVarType
 - add basics of resolving scope variables
4 years ago
Luna 182d831408 comp_ctx: use more pointers to variable metadata 4 years ago
Luna ea4dd5fde4 move to llvm 9
- comp_ctx: add VariableMetadata.llvm_alloca
 - comp_ctx: make VariableMetadataMap use ptrs to VariableMetadata
4 years ago
Luna 9869cca2ae remove mutability/publicability
i may implement those in a better way, which isn't V's
4 years ago
Luna c7920246a5 codegen: add emitting of unary exprs 4 years ago
Luna 3d47c0cca8 parser: fix unary operators causing stack overflow 4 years ago
Luna 65a9e58a9a emit a store for the stack fn arguments 4 years ago
Luna 21dcb3e65d codegen: emit load instruction for (now-stack) params
- comp_ctx: make ParameterMap use ptrs to Parameter
4 years ago
Luna 518d2daeb4 Merge branch 'master' of https://gitdab.com/luna/rayoko 4 years ago
Luna a136a377ce change symbol table to use pointers to heap allocated symbols 4 years ago
Luna 93811c986d codegen: use Parameter.llvm_alloca 4 years ago
Luna 61c8493484 add basics of stack-stored arguments
this requires some changes regarding the const-ability of the passed
nodes into codegen.
4 years ago
Luna 58713b20e3 add llvmvalueref to Parameter 4 years ago
Luna 178acc656f codegen: allow for mutable statements
- ast: add llvm_alloca llvmvalueref pointer in VarDeclStmt
4 years ago
Luna 81fd718403 codegen: emit vardecl initializer 4 years ago
Luna d235ce0d13 add codegen for allocating vardecls onto stack (not init yet)
codegen pass needs type information about the variable. thankfully,
analyze pass already did the hard work for it, and scope info has types
of all its declared names. we use that info to generate the alloca

to have information about which current scope we are, we add a "child
index" to scopes so we can repoint current context at them instead of
bumpScope(), which always creates new, empty ones.

initializer exprs are next
4 years ago