diff --git a/README.md b/README.md index db89901..f75bc11 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ Dot :: (a: Vec3, b: Vec3): F32 ;; return a.x*b.x + a.y*b.y + a.z*b.z - [x] Synchronize generated C code with original source using line directives so that debuggers work - [x] Fix overshoots when debugger goes to brace in c code -- [ ] Expressions +- [x] Expressions - [x] Compounds with named fields and numbered fields - [x] Functions calls with named arguments - [x] All the standard binary, unary expressions @@ -120,12 +120,16 @@ Dot :: (a: Vec3, b: Vec3): F32 ;; return a.x*b.x + a.y*b.y + a.z*b.z - [ ] Assignment expressions? - [x] Conditional compilation, you can include files based on a pattern: - - "$os_multimedia.core" expands to "win32_multimedia.core" or "unix_multimedia.core" depending on the platform. - - [ ] Compiler should include "linux_something.core" and "unix_something.core" at the same time + - [x] "$os_multimedia.core" expands to "win32_multimedia.core" or "unix_multimedia.core" depending on the platform. - [ ] Platforms + - [x] Conditional compilation - [x] Windows - - [ ] Unix based + - [ ] Unix + - [ ] Paths + - [ ] Reading files + - [ ] Listing files + - [ ] Virtual memory - [ ] Language constructs - [x] Standard constructs like if, for loop etc. diff --git a/modules/Math.core b/modules/Math.core index 10d10d4..4478368 100644 --- a/modules/Math.core +++ b/modules/Math.core @@ -4,6 +4,7 @@ sinf :: #foreign (value: F32): F32 Vec2I :: struct;; x: S64; y: S64 Vec2 :: struct;; x: F32; y: F32 + "*" :: (a: Vec2, b: Vec2): Vec2 ;; return {a.x*b.x, a.y*b.y} "*" :: (a: Vec2, b: F32) : Vec2 ;; return {a.x*b, a.y*b} "*" :: (a: F32, b: Vec2) : Vec2 ;; return {a*b.x, a*b.y}