Luna
2357de5a04
llvm10 time
2020-07-23 18:07:13 -03:00
Luna
5713df2a8b
more fixes
2020-07-23 17:17:06 -03:00
Luna
b0ddffd5fe
hashmap changes, part 2
2020-07-23 17:06:43 -03:00
Luna
0265eddb2e
hashmap changes
2020-07-23 16:56:37 -03:00
Luna
56be677c7a
at() -> items[]
2020-07-23 16:46:46 -03:00
Luna
e0f0ae7f24
toSlice -> items
2020-07-23 16:42:59 -03:00
Luna
03561ebe6a
zig fmt pass
2020-07-23 16:42:49 -03:00
Luna
3a55f8dbcc
Update README install/use instructions
2020-04-02 15:17:14 -03:00
Luna
74e6beda67
more fixes for latest zig
2020-04-01 21:58:30 -03:00
Luna
049a388660
more fixes for latest zig
2020-04-01 21:48:08 -03:00
Luna
a623d9b2ca
minor fixes on main file
2020-04-01 16:10:47 -03:00
Luna
5ae47fb962
zig fmt pass
2020-04-01 16:09:52 -03:00
Luna
7976b64cf6
tuple-inator pass
2020-04-01 16:09:39 -03:00
Luna
cf22d47e13
ast_printer: tuple-ify
2020-04-01 16:03:46 -03:00
Luna
ebf4af6537
fixes for latest zig
2019-12-07 20:28:55 -03:00
Luna
9a9008247f
move x86 to codegen.x86
2019-11-25 21:44:04 -03:00
Luna
e42a97e192
use 'as' builtin
...
- move src/codegen.zig to src/codegen/llvm.zig
2019-11-25 21:42:24 -03:00
Luna
3ddc6c61c8
add basic x86 struct
2019-11-13 20:27:39 -03:00
Luna
c743c804be
analysis: check current_scope being null for VarDecl
2019-10-12 13:56:39 -03:00
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.
2019-10-05 10:40:36 -03:00
Luna
5348e2b5c4
remove Stmt as an AST node
...
it was only used for printing purposes, even though we can use the
existing printStmt() function.
2019-10-05 10:37:28 -03:00
Luna
9d1c9cab7f
analysis: fix ret type
2019-10-05 10:33:37 -03:00
Luna
d69a64dbfb
analysis: add bump-dump scope to loop analysis
2019-10-05 10:30:01 -03:00
Luna
881833b187
s/TypeSolver/Analyzer
2019-10-05 10:27:38 -03:00
Luna
5c58ac0238
analysis: add contextual checks for Assign expr
2019-10-05 10:26:47 -03:00
Luna
809dad1095
codegen: add Grouping expr support
...
- entry: return value of rayoko main
2019-10-05 10:08:27 -03:00
Luna
34481c8ea8
main: call gcc to make out executable
2019-09-29 13:16:49 -03:00
Luna
88e505b524
parser: rename main function to __rayoko_main
2019-09-29 12:46:31 -03:00
Luna
f00741deca
add main() to example
2019-09-29 12:03:17 -03:00
Luna
f84eb16490
codegen: emit Store for Assign exprs
2019-09-29 11:41:16 -03:00
Luna
5d8efd657f
analysis: add analysis of Assign expressions
2019-09-28 22:48:59 -03:00
Luna
2fea745df4
codegen: use current_scope's meta_map instead of resolveVarType
2019-09-28 22:18:22 -03:00
Luna
f2520e7d02
change bits and pieces everywhere about var meta
2019-09-28 22:16:33 -03:00
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
2019-09-28 21:30:52 -03:00
Luna
182d831408
comp_ctx: use more pointers to variable metadata
2019-09-28 20:52:45 -03:00
Luna
ea4dd5fde4
move to llvm 9
...
- comp_ctx: add VariableMetadata.llvm_alloca
- comp_ctx: make VariableMetadataMap use ptrs to VariableMetadata
2019-09-28 20:40:07 -03:00
Luna
9869cca2ae
remove mutability/publicability
...
i may implement those in a better way, which isn't V's
2019-09-28 18:09:58 -03:00
Luna
c7920246a5
codegen: add emitting of unary exprs
2019-09-28 17:58:17 -03:00
Luna
3d47c0cca8
parser: fix unary operators causing stack overflow
2019-09-28 17:52:30 -03:00
Luna
65a9e58a9a
emit a store for the stack fn arguments
2019-09-28 13:40:11 -03:00
Luna
21dcb3e65d
codegen: emit load instruction for (now-stack) params
...
- comp_ctx: make ParameterMap use ptrs to Parameter
2019-09-28 13:30:05 -03:00
Luna
518d2daeb4
Merge branch 'master' of https://gitdab.com/luna/rayoko
2019-09-28 13:18:28 -03:00
Luna
a136a377ce
change symbol table to use pointers to heap allocated symbols
2019-09-28 13:17:11 -03:00
Luna
93811c986d
codegen: use Parameter.llvm_alloca
2019-09-28 12:46:23 -03:00
Luna
61c8493484
add basics of stack-stored arguments
...
this requires some changes regarding the const-ability of the passed
nodes into codegen.
2019-09-28 11:40:56 -03:00
Luna
58713b20e3
add llvmvalueref to Parameter
2019-09-28 11:32:36 -03:00
Luna
178acc656f
codegen: allow for mutable statements
...
- ast: add llvm_alloca llvmvalueref pointer in VarDeclStmt
2019-09-28 11:30:21 -03:00
Luna
81fd718403
codegen: emit vardecl initializer
2019-09-27 22:49:33 -03:00
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
2019-09-27 22:36:35 -03:00
Luna
77c88fad34
update readme with usage instructions
2019-09-27 21:23:11 -03:00