summaryrefslogtreecommitdiff
path: root/src/stages/semantic.rs
Commit message (Collapse)AuthorAge
* Implement first-class string literalsBen Bridle2025-04-26
| | | | | | | | | | | This feature promotes strings to a first-class type in the language. If a string is passed to an invocation via the new string-type argument, the string will be passed as a whole value. String arguments can still be passed to an invocation via an integer-type argument, in which case they'll be broken apart into individual characters with the macro being invoked once per character. String-type macro arguments are declared like "name".
* Fix misleading error messageBen Bridle2025-04-26
| | | | | | The code here is really expecting a block value, but has received an integer value. This catches the case where an integer value is incorrectly included in a macro definition body alongside block tokens.
* Tidy codyBen Bridle2025-03-18
| | | | | | | - Rename tokens field on SyntacticMacroDefinition to body - Rename push_err! macro to err! - Create macros for character-matching logic in syntactic parsing - Replace .as_bytes().to_vec() pattern with .into_bytes()
* Rewrite entire assemblerBen Bridle2025-03-11
The language is now more general, the code is better structured, error reporting is more detailed, and many new language features have been implemented: - conditional blocks - first-class strings - more expression operators - binary literals - negative values - invocations in constant expressions