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