Pārlūkot izejas kodu

update README.md

Johan Rong 2 dienas atpakaļ
vecāks
revīzija
4adbba324c
1 mainītis faili ar 5 papildinājumiem un 16 dzēšanām
  1. 5 16
      README.md

+ 5 - 16
README.md

@@ -1,26 +1,15 @@
 # Zelkel
+Compiled object-oriented programming language
 
-TODO: tomorrow, implement more macro stuff
-```zk
-val test: i64 = 1 + 2*3 + 3*4
-
-#llvm(
-  "%call = call i32 (ptr, ...) @printf(ptr @int.fmt, i64 %{:irname})",
-  test // Test variable's irname is inputted inplace or {:irname} in the llvm ir
-)
-```
-
-## Goals 
+## Goals
 - [ ] Self-hosted
 - [ ] Reference-counting garbage collector
 - [ ] Same-thread assync functions
 
 ## TODO
-- [x] Scope checking and stuff in parser
-- [ ] Parser should generate all names (unique), struct indexes, etc for codegen, this should also be in the scope
-    - [x] Multi pass parser: first scope/symbol collection (what i've been doing now), then check if it makes sense :)
-- [x] Functions may kind of have same name but different arguments, but the scope stuff is using a dict[str, Value] so it is not tracked, the resolve_function() should work for this though, so scope stuff needs work.
-- [x] Need to know the value type of an expression in codegen, i think adding this in the validator to the ast is the right move...
+- [] Macros
+  - [ ] Macro definition
+  - [x] Macro calling and inline llvm
 - Types:
   - With no * or & before type it will be "dynamic", the compiler figures out if it's the pointer or the value that is being used
   - explicit value with * or explicit pointer with &. You can also use & and * on a "dynamic" type to get both, "dynamic" types are both at the same time, but in reality they are probably the pointer and then you know both