| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Imports will be removed until a clean design can be thought of. A workaround is
to use export and extern. The final solution is likely going to be an
automation of this or a package-oriented system where source code gets imported
directly, single-file or multi-file.
|
|
|
|
|
|
| |
Types can no longer be stored in constants. A runtime reflection mechanism may
be provided in the future, but the language does not aim to implement a
compile-time programming environment.
|
|
|
|
|
|
| |
Since it is impossible to construct a value of type void (or even spell
its type) this change is needed to enable returning from void functions
conditionally.
|
|
|
|
|
|
|
| |
The default case is to break out of the innermost block or to continue
the innermost loop. Since this is the desired behavior in the majority
of cases this change can be beneficial for readability, especially if a
value is returned.
|
|
|
|
|
|
| |
This makes it possible to return values from any block by breaking out
of it, enabling if statements to yield expressions when combined with
commit ce68792c848caee2f184e7a6392d9f1e958da1a1.
|
|
|
|
|
|
|
|
| |
The previous approach required both assignment and call statements to be
matched last which is impossible. An expression-based language design
simplifies the parser and provides useful syntax to programmers (such as
a ternary operator in the form of assigning the result of an if
statement). This commit does not provide an implementation.
|
| |
|
|
|
|
| |
This fixes expressions not involving equality checks being invalid.
|
|
|
|
|
| |
This should make parsing safer in cases where the tag type is omitted,
ensuring that no more than one token needs to be unlex'd.
|
| |
|
|
|
|
|
| |
This makes it possible for the parser to distinguish between them
without unlexing more than one token.
|
| |
|
|
|
|
| |
This significantly simplifies parsing. All constants will be public.
|
| |
|
| |
|
|
|
|
| |
This is a better name since blocks only have one body.
|
|
|
|
|
| |
Import statements are only allowed at the beginning of a file.
No further imports are allowed after the first non-import statement.
|
| |
|
| |
|
|
|
|
| |
This is much easier to lex than separate token kinds.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|