| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
| |
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".
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
- 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()
|
|
|
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
|