mirror of
https://github.com/Nexoniarz/Finch.git
synced 2026-11-03 00:44:27 +00:00
OpenGL and Vulkan examples; ptr(int)/int(ptr); trailing commas in calls; drop .fn hint
- examples/opengl.fch: OpenGL 3.3 core, shaders, VAO/VBO, a spinning triangle (checked offscreen) - examples/vulkan.fch: instance, GPUs with properties/memory/queues, logical device and queue - ptr(n) and int(p) conversions for C APIs that pass offsets as pointers - .ptr works on string literals; a comma after the last call argument is allowed - a missing header included by an imported header is now named in the error - the old .fn extension hint is gone (Finch is new, there are no old files) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
f897fb3140
commit
8497251dc5
22 changed files with 357 additions and 26 deletions
|
|
@ -160,7 +160,7 @@ unary = ( "-" | "!" | "~" ) unary | postfix ;
|
|||
postfix = primary { "." IDENT [ args ] | "[" expr "]" } ;
|
||||
primary = INT | FLOAT | STRING | CHAR | "true" | "false" | "null"
|
||||
| IDENT [ args ] | "(" expr ")" | "[" [ expr { "," expr } [","] ] "]" ;
|
||||
args = "(" [ arg { "," arg } ] ")" ; arg = [ IDENT ":" ] expr ;
|
||||
args = "(" [ arg { "," arg } [","] ] ")" ; arg = [ IDENT ":" ] expr ;
|
||||
```
|
||||
|
||||
**Koniec instrukcji.** Po instrukcji `endOfStatement()` wymaga `}`, końca pliku albo tokenu
|
||||
|
|
@ -347,6 +347,7 @@ Nie ma promocji całkowitych z C: `u8 + u8` zostaje `u8`.
|
|||
| `[]u8`/`[]char` → str | `finch_str_from_bytes` |
|
||||
| ptr → str | `finch_str_from_c` (pożyczony, `cap = -1`) |
|
||||
| ptr ↔ ptr | nic |
|
||||
| int → ptr / ptr → int | `inttoptr` / `ptrtoint` |
|
||||
|
||||
### Porównania
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue