diff --git a/forge-script-lang/src/lexer/tokens.rs b/forge-script-lang/src/lexer/tokens.rs index 9bb2c4186d52d35e1dbb70c3a61b6c488d0b9233..e0b3f6dae37ef219b7bbabf17faca2076e310fea 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"#)]