Garrit Franke
379d8709dc
feat: better statement and binop error messages
3 years ago
Garrit Franke
f58ec04ec3
fix: nested expression parsing
...
fixes: #8 , #18
3 years ago
Garrit Franke
f4d0139ba1
tests: add failing arithmetic test
3 years ago
Garrit Franke
48f3a6692e
chore: extract types into own module
3 years ago
Garrit Franke
d3d6af3b00
chore: fix formatting
3 years ago
Garrit Franke
4c4f9f743d
chore: extract AST to own module
3 years ago
Garrit Franke
7810052c56
Modules ( #17 )
...
* chore: rename program -> module
* feat: add module builder
* feat: append standard library
* chore: fix clippy warnings
* chore: fix formatting
* feat: imports
* chore: fix formatting
* feat: resolve path deltas to entrypoint
* chore: fix formatting
* fix: path resolver
* chore: refactor stdlib
* docs: document modules
* docs: add "unreleased" section to changelog
* docs: add modules as unreleased bullet in changelog
* feat: resolve nested modules
* fix: clean up file resolvement
* chore: fix clippy lints
3 years ago
Garrit Franke
278d5e6542
Match statements ( #15 )
...
* feat: lexical tokens for match
* feat: parser implementation of match
* feat: js generation for match statements
* feat: match block arms
* feat: default arm for match
* chore: fix formatting
* chore: fix clippy warnings
* docs: add match statement
* feat: use "else" keyword instead of "default"
Co-authored-by: Garrit Franke <garrit@slashdev.space>
3 years ago
Garrit Franke
4f8498c710
chore: fix copyright notices
3 years ago
Garrit Franke
2c6d81c063
feat: struct definitions ( #12 )
...
* feat: struct definitions
* feat: struct initialization
* chore: fix warning
* feat: use `new` keyword to initialize structs
* feat: infer struct type
* feat: allow structs as types
* feat: basic field access
* chore: fix formatting
* feat: assert function
* docs: add structs
* fix: builtin readme
* chore: refactor field access parsing
* chore: fix formatting
* feat: struct field assignments
* feat: struct field access in expressions
* feat: struct field access on function calls
* chore: fix formatting
* feat: nested structs
* chore: fix formatting
* chore: fix clippy warnings
Co-authored-by: Garrit Franke <garrit@slashdev.space>
3 years ago
Garrit Franke
ec4f821843
chore: clean up argument parsing
...
This will come in handy later for structs, since
the parsing doesn't rely on any specific tokens
like ")" or "}"
3 years ago
Garrit Franke
ebd34541b1
chore: fix warnings
3 years ago
Garrit Franke
6a6547b9c7
feat: assignment operators ( #10 )
...
* feat: assignment operators
* docs: use assignment operators
Co-authored-by: Garrit Franke <garrit@slashdev.space>
3 years ago
Garrit Franke
cfdb0ead49
feat: array as function call parameter
3 years ago
Garrit Franke
79d01c4f6c
feat: array as function call parameter
3 years ago
Garrit Franke
c156773c5f
feat: scoped variables
3 years ago
Garrit Franke
bd2fac11c6
feat: optional type declaration in for loop
3 years ago
Garrit Franke
4a4634e2d7
feat: add any type
3 years ago
Garrit Franke
f742b2992e
tests: add failing test_array_as_argument test
3 years ago
Garrit Franke
e750d4a611
feat: debug output in infer function
3 years ago
Garrit Franke
54b971b445
feat: infer function return types
3 years ago
Garrit Franke
fb0f9f5016
feat: infer array types
3 years ago
Garrit Franke
ce8ccce0b3
feat: basic type inference
3 years ago
Garrit Franke
d8a36ffbe6
tests: add ignored test_complex_nested_expressions
3 years ago
Garrit Franke
2822fddfc1
feat: nested arrays
3 years ago
Garrit Franke
94a3e34776
feat: break and continue
3 years ago
Garrit Franke
9447888a4f
feat: nested expressions
3 years ago
Garrit Franke
b2d2fd04a4
test: unignore uninitialized variable test
3 years ago
Garrit Franke
f593bf1fc3
test: add ignored nested array test
3 years ago
Garrit Franke
1fa86badab
docs: add functions
3 years ago
Garrit Franke
031e378538
WIP: Add for loops
3 years ago
Garrit Franke
147a56b209
Allow uninitialized variables
3 years ago
Garrit Franke
6ff65ea610
Fix booleans in functions calls
3 years ago
Garrit Franke
949b4dc449
Generate function prototypes
3 years ago
Garrit Franke
fcc13c9d64
Test conditionals in C backend
3 years ago
Garrit Franke
b34944e257
Compile stdlib seperately
3 years ago
Garrit Franke
9459c11afa
Add C backend
3 years ago
Garrit Franke
c615014cb8
Add function return type
3 years ago
Garrit Franke
64b43c7c0c
Add optional types for declares
3 years ago
Garrit Franke
a565849f3a
Add types to function arguments
3 years ago
Garrit Franke
76ba6693bf
Unignore test_array_access_in_if
3 years ago
Garrit Franke
13a88a0e76
Fix array access as assignment
3 years ago
Garrit Franke
e20f6b69a4
Add reverse function to stdlib
3 years ago
Garrit Franke
2d26d0a198
Fix multiple function arguments
3 years ago
Garrit Franke
4842d92b74
Add bubblesort example
3 years ago
Garrit Franke
ac07e43719
Add array access syntax
3 years ago
Garrit Franke
57f403cc9b
Add stdlib
3 years ago
Garrit Franke
0d213f33e9
Add variable assignment
3 years ago
Garrit Franke
34b32d1a34
Add variables section in docs
3 years ago
Garrit Franke
8fe1e42c43
Add booleans
3 years ago