diff options
| author | Mel <einebeere@gmail.com> | 2021-11-13 19:08:06 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2021-11-13 19:08:06 +0100 |
| commit | 514ceb979c4ce79bfee2234cf981292ded714f66 (patch) | |
| tree | 01930bb09a2aeaa2ddbe5736349b98174527b8fe /src/lex/token.rs | |
| parent | 799afd5b71aaf41a59a8569a9e24945b4df60b7c (diff) | |
| download | rabbithole-514ceb979c4ce79bfee2234cf981292ded714f66.tar.zst rabbithole-514ceb979c4ce79bfee2234cf981292ded714f66.zip | |
Lex string embeds.
Diffstat (limited to 'src/lex/token.rs')
| -rw-r--r-- | src/lex/token.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lex/token.rs b/src/lex/token.rs index 77b0df6..c771b4a 100644 --- a/src/lex/token.rs +++ b/src/lex/token.rs @@ -49,8 +49,17 @@ pub enum TokenVariant { // Literals Int(u32), Float(f32), + + // String Literal Tokens Str(String), - + // StrOpen and StrClose are necessary for string embeds. + // A normal string looks like [StrOpen Str("Hello!") StrClose] in a token stream while a + // string with an embed would look something like [StrOpen Str("Hello") StrEmbed("world") Str("!") S StrClose]. + StrOpen, + StrClose, + // The string embed has to be lexed by a *seperate* lexer. + StrEmbed(String), + Ident(String), // Keywords @@ -71,4 +80,4 @@ pub enum TokenVariant { Unknown(char), Eof, -} +} \ No newline at end of file |
