From 9bf10abe941bbf8414e99605f0cafef6db1a0f6c Mon Sep 17 00:00:00 2001 From: Louis Capitanchik <contact@louiscap.co> Date: Mon, 12 Jun 2023 00:04:45 +0100 Subject: [PATCH] Support "Colon" token --- forge-script-lang/src/lexer/tokens.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/forge-script-lang/src/lexer/tokens.rs b/forge-script-lang/src/lexer/tokens.rs index 9bb2c41..e0b3f6d 100644 --- a/forge-script-lang/src/lexer/tokens.rs +++ b/forge-script-lang/src/lexer/tokens.rs @@ -12,6 +12,7 @@ pub enum ScriptTokenType { Comma, Dot, Semicolon, + Colon, // Unary Operators Bang, @@ -77,6 +78,7 @@ impl ScriptTokenType { ScriptTokenType::Minus => 1, ScriptTokenType::Plus => 1, ScriptTokenType::Semicolon => 1, + ScriptTokenType::Colon => 1, ScriptTokenType::Slash => 1, ScriptTokenType::Asterisk => 1, ScriptTokenType::Bang => 1, @@ -138,6 +140,7 @@ impl Display for ScriptTokenType { ScriptTokenType::Minus => write!(f, "-"), ScriptTokenType::Plus => write!(f, "+"), ScriptTokenType::Semicolon => write!(f, ";"), + ScriptTokenType::Colon => write!(f, ":"), ScriptTokenType::Slash => write!(f, "/"), ScriptTokenType::Asterisk => write!(f, "*"), ScriptTokenType::Bang => write!(f, "!"), @@ -206,6 +209,7 @@ impl<'a> TryFrom<&'a str> for ScriptTokenType { "-" => Ok(ScriptTokenType::Minus), "+" => Ok(ScriptTokenType::Plus), ";" => Ok(ScriptTokenType::Semicolon), + ":" => Ok(ScriptTokenType::Colon), "/" => Ok(ScriptTokenType::Slash), "*" => Ok(ScriptTokenType::Asterisk), "!" => Ok(ScriptTokenType::Bang), @@ -283,6 +287,7 @@ mod token_tests { #[test_case("-" => Ok(ScriptTokenType::Minus); r#"Parse Minus"#)] #[test_case("+" => Ok(ScriptTokenType::Plus); r#"Parse Plus"#)] #[test_case(";" => Ok(ScriptTokenType::Semicolon); r#"Parse Semicolon"#)] + #[test_case(":" => Ok(ScriptTokenType::Semicolon); r#"Parse Colon"#)] #[test_case("/" => Ok(ScriptTokenType::Slash); r#"Parse Slash"#)] #[test_case("*" => Ok(ScriptTokenType::Asterisk); r#"Parse Asterisk"#)] #[test_case("!" => Ok(ScriptTokenType::Bang); r#"Parse Bang"#)] -- GitLab