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