From d4cc1d1c28aaa0fad76110ec62fb940bbc702e1a Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 4 Mar 2026 14:55:09 +0100 Subject: [PATCH] Use var instead of let for variables --- README.md | 3 +- SYNTAX_V2.md | 9 +-- .../CodeFlowStatementsTests.cs | 7 ++- .../CodeFowStatementsTests.cs | 63 ++++++++++--------- .../ConsoleStatementsTests.cs | 5 +- .../FunctionStatementsTests.cs | 13 ++-- .../ProcessingStatementsTests.cs | 7 ++- .../SystemStatementsTests.cs | 5 +- .../VariableStatementsTests.cs | 11 ++-- .../Statements/VariableStatements.cs | 5 +- 10 files changed, 69 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index 5a83f33..bf67f69 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Current language syntax is documented in [SYNTAX_V2.md](SYNTAX_V2.md). Example: ```ynt -let name = world +var name = world print_line Hello ${name} ``` @@ -18,3 +18,4 @@ print_line Hello ${name} ```bash dotnet run --project YesNt.Interpreter -- path/to/script.ynt ``` + diff --git a/SYNTAX_V2.md b/SYNTAX_V2.md index ab96d1d..dd62b7a 100644 --- a/SYNTAX_V2.md +++ b/SYNTAX_V2.md @@ -20,7 +20,7 @@ This document describes the current, word-based YesNt syntax. ## Quick Example ```ynt -let name = world +var name = world func greet: print_line Hello ${name} return @@ -40,10 +40,10 @@ end_if ## While Loops ```ynt -let i = 3 +var i = 3 while ${i} > 0: print_line ${i} -let i = ${i} - 1 calc +var i = ${i} - 1 calc end_while ``` @@ -51,7 +51,7 @@ end_while | Area | v1 Syntax | v2 Syntax | Notes | |---|---|---|---| -| Variables | `x` | `${x}` | Variable read/interpolation token. | @@ -99,3 +99,4 @@ end_while - `%out` is intentionally kept as `%out`. - Postfix operations are `calc`, `eval`, and `task`. + diff --git a/YesNt.Interpreter.Tests/CodeFlowStatementsTests.cs b/YesNt.Interpreter.Tests/CodeFlowStatementsTests.cs index 6674ac3..0c00e1f 100644 --- a/YesNt.Interpreter.Tests/CodeFlowStatementsTests.cs +++ b/YesNt.Interpreter.Tests/CodeFlowStatementsTests.cs @@ -12,9 +12,9 @@ public class CodeFlowStatementsTests { List lines = [ - "let result = before", + "var result = before", "exit", - "let result = after", + "var result = after", "${result}" ]; @@ -27,7 +27,7 @@ public class CodeFlowStatementsTests List lines = [ "abort_all", - "let result = after", + "var result = after", "${result}" ]; @@ -78,3 +78,4 @@ public class CodeFlowStatementsTests YesNtAssert.ContainsTerminationMessage(lines, "Function \"nowhere\" not found"); } } + diff --git a/YesNt.Interpreter.Tests/CodeFowStatementsTests.cs b/YesNt.Interpreter.Tests/CodeFowStatementsTests.cs index c21063b..a3c0527 100644 --- a/YesNt.Interpreter.Tests/CodeFowStatementsTests.cs +++ b/YesNt.Interpreter.Tests/CodeFowStatementsTests.cs @@ -26,9 +26,9 @@ public class CodeFlowTests { List lines = [ - "let result = 1", + "var result = 1", "goto yes", - "let result = 0", + "var result = 0", "label yes:", "${result}" ]; @@ -40,9 +40,9 @@ public class CodeFlowTests { List lines = [ - "let result = low", + "var result = low", "if 6 > 5:", - "let result = high", + "var result = high", "end_if", "${result}" ]; @@ -55,11 +55,11 @@ public class CodeFlowTests { List lines = [ - "let result = low", + "var result = low", "if 6 < 5:", - "let result = high", + "var result = high", "else:", - "let result = medium", + "var result = medium", "end_if", "${result}" ]; @@ -72,12 +72,12 @@ public class CodeFlowTests { List lines = [ - "let result = 0", + "var result = 0", "if 1 == 1:", "if 2 == 3:", - "let result = 1", + "var result = 1", "else:", - "let result = 2", + "var result = 2", "end_if", "end_if", "${result}" @@ -91,9 +91,9 @@ public class CodeFlowTests { List lines = [ - "let i = 3", + "var i = 3", "while ${i} > 0:", - "let i = ${i} - 1 calc", + "var i = ${i} - 1 calc", "end_while", "${i}" ]; @@ -106,9 +106,9 @@ public class CodeFlowTests { List lines = [ - "let i = 0", + "var i = 0", "while ${i} > 0:", - "let i = 99", + "var i = 99", "end_while", "${i}" ]; @@ -121,15 +121,15 @@ public class CodeFlowTests { List lines = [ - "let outer = 2", - "let count = 0", + "var outer = 2", + "var count = 0", "while ${outer} > 0:", - "let inner = 2", + "var inner = 2", "while ${inner} > 0:", - "let count = ${count} + 1 calc", - "let inner = ${inner} - 1 calc", + "var count = ${count} + 1 calc", + "var inner = ${inner} - 1 calc", "end_while", - "let outer = ${outer} - 1 calc", + "var outer = ${outer} - 1 calc", "end_while", "${count}" ]; @@ -142,11 +142,11 @@ public class CodeFlowTests { List lines = [ - "let result = 0", + "var result = 0", "if 2 > 1:", - "let result = 1", + "var result = 1", "else:", - "let result = 2", + "var result = 2", "end_if", "${result}" ]; @@ -159,9 +159,9 @@ public class CodeFlowTests { List lines = [ - "let result = 5", + "var result = 5", "if 1 == 2:", - "let result = 1", + "var result = 1", "end_if", "${result}" ]; @@ -174,11 +174,11 @@ public class CodeFlowTests { List lines = [ - "let result = 0", + "var result = 0", "if 1 == 1 goto done", - "let result = 2", + "var result = 2", "label done:", - "let result = ${result} + 1 calc", + "var result = ${result} + 1 calc", "${result}" ]; @@ -228,7 +228,7 @@ public class CodeFlowTests List lines = [ "if 1 == 2:", - "let result = 1" + "var result = 1" ]; YesNtAssert.ContainsTerminationMessage(lines, "No matching end_if found"); @@ -250,9 +250,9 @@ public class CodeFlowTests { List lines = [ - "let i = 0", + "var i = 0", "while ${i} > 1:", - "let i = ${i} + 1 calc" + "var i = ${i} + 1 calc" ]; YesNtAssert.ContainsTerminationMessage(lines, "No matching end_while found"); @@ -269,3 +269,4 @@ public class CodeFlowTests YesNtAssert.ContainsTerminationMessage(lines, "No matching while found"); } } + diff --git a/YesNt.Interpreter.Tests/ConsoleStatementsTests.cs b/YesNt.Interpreter.Tests/ConsoleStatementsTests.cs index 2e789ba..fc076b7 100644 --- a/YesNt.Interpreter.Tests/ConsoleStatementsTests.cs +++ b/YesNt.Interpreter.Tests/ConsoleStatementsTests.cs @@ -62,7 +62,7 @@ public class ConsoleStatementsTests List lines = [ - "let value = %read_line", + "var value = %read_line", "${value}" ]; @@ -95,7 +95,7 @@ public class ConsoleStatementsTests List lines = [ - "let value = %read_key" + "var value = %read_key" ]; _ = Task.Run(() => interpreter.Execute(lines, true)); @@ -108,3 +108,4 @@ public class ConsoleStatementsTests StringAssert.Contains(output.ToString(), "Terminated by external process"); } } + diff --git a/YesNt.Interpreter.Tests/FunctionStatementsTests.cs b/YesNt.Interpreter.Tests/FunctionStatementsTests.cs index 7203cf6..aa148b9 100644 --- a/YesNt.Interpreter.Tests/FunctionStatementsTests.cs +++ b/YesNt.Interpreter.Tests/FunctionStatementsTests.cs @@ -32,14 +32,14 @@ public class FunctionStatementsTests "goto main", "func probe:", "global hasInBefore = %has_in", - "let consume = %in", + "var consume = %in", "global hasInAfter = %has_in", "push_out ${hasInBefore}", "push_out ${hasInAfter}", "return", "label main:", "call probe with x", - "let hasOut = %has_out", + "var hasOut = %has_out", "${hasOut}" ]; @@ -57,7 +57,7 @@ public class FunctionStatementsTests "return", "label main:", "call make with anything", - "let value = %out", + "var value = %out", "${value}" ]; @@ -69,7 +69,7 @@ public class FunctionStatementsTests { List lines = [ - "let x = %out" + "var x = %out" ]; YesNtAssert.ContainsTerminationMessage(lines, "No out argument in stack"); @@ -80,7 +80,7 @@ public class FunctionStatementsTests { List lines = [ - "let x = %in" + "var x = %in" ]; YesNtAssert.ContainsTerminationMessage(lines, "Statement not allowed outside of function"); @@ -138,10 +138,11 @@ public class FunctionStatementsTests List lines = [ "clear_call_stack", - "let result = ok", + "var result = ok", "${result}" ]; YesNtAssert.IsLastLineEqual(lines, "ok"); } } + diff --git a/YesNt.Interpreter.Tests/ProcessingStatementsTests.cs b/YesNt.Interpreter.Tests/ProcessingStatementsTests.cs index bbfd2ef..98a093e 100644 --- a/YesNt.Interpreter.Tests/ProcessingStatementsTests.cs +++ b/YesNt.Interpreter.Tests/ProcessingStatementsTests.cs @@ -68,7 +68,7 @@ public class ProcessingStatementsTests List lines = [ "sleep 5", - "let result = ok", + "var result = ok", "${result}" ]; @@ -81,7 +81,7 @@ public class ProcessingStatementsTests List lines = [ "length hello", - "let value = %out", + "var value = %out", "${value}" ]; @@ -95,7 +95,7 @@ public class ProcessingStatementsTests try { - File.WriteAllText(tempFile, "let imported = yes"); + File.WriteAllText(tempFile, "var imported = yes"); List lines = [ @@ -139,3 +139,4 @@ public class ProcessingStatementsTests YesNtAssert.IsLastLineEqual(lines, "1", timeout: 3000); } } + diff --git a/YesNt.Interpreter.Tests/SystemStatementsTests.cs b/YesNt.Interpreter.Tests/SystemStatementsTests.cs index 441eefc..fa7ec65 100644 --- a/YesNt.Interpreter.Tests/SystemStatementsTests.cs +++ b/YesNt.Interpreter.Tests/SystemStatementsTests.cs @@ -13,7 +13,7 @@ public class SystemStatementsTests List lines = [ "exec cmd with /c,echo yesnt", - "let exitCode = %out", + "var exitCode = %out", "${exitCode}" ]; @@ -28,7 +28,7 @@ public class SystemStatementsTests "push_in /c", "push_in echo yesnt", "exec cmd", - "let exitCode = %out", + "var exitCode = %out", "${exitCode}" ]; @@ -46,3 +46,4 @@ public class SystemStatementsTests YesNtAssert.ContainsTerminationMessage(lines, "Failed to start \"does_not_exist_abc_xyz\""); } } + diff --git a/YesNt.Interpreter.Tests/VariableStatementsTests.cs b/YesNt.Interpreter.Tests/VariableStatementsTests.cs index 260e796..ed1f3ec 100644 --- a/YesNt.Interpreter.Tests/VariableStatementsTests.cs +++ b/YesNt.Interpreter.Tests/VariableStatementsTests.cs @@ -12,7 +12,7 @@ public class VariableStatementsTests { List lines = [ - "let value = hi", + "var value = hi", "${value}" ]; @@ -37,7 +37,7 @@ public class VariableStatementsTests List lines = [ "global value = global", - "let value = local", + "var value = local", "${value}" ]; @@ -49,7 +49,7 @@ public class VariableStatementsTests { List lines = [ - "let value = a", + "var value = a", "delete value", "global value = b", "${value}" @@ -74,7 +74,7 @@ public class VariableStatementsTests { List lines = [ - "let a" + "var a" ]; YesNtAssert.ContainsTerminationMessage(lines, "Invalid statement"); @@ -85,7 +85,7 @@ public class VariableStatementsTests { List lines = [ - "let a b = 1" + "var a b = 1" ]; YesNtAssert.ContainsTerminationMessage(lines, "Invalid Syntax"); @@ -102,3 +102,4 @@ public class VariableStatementsTests YesNtAssert.ContainsTerminationMessage(lines, "Variable \"missing\" not found"); } } + diff --git a/YesNt.Interpreter/Statements/VariableStatements.cs b/YesNt.Interpreter/Statements/VariableStatements.cs index 3decc2c..b4cf6d8 100644 --- a/YesNt.Interpreter/Statements/VariableStatements.cs +++ b/YesNt.Interpreter/Statements/VariableStatements.cs @@ -1,4 +1,4 @@ -using System.Text.RegularExpressions; +using System.Text.RegularExpressions; using YesNt.Interpreter.Attributes; using YesNt.Interpreter.Enums; @@ -8,7 +8,7 @@ namespace YesNt.Interpreter.Statements; internal partial class VariableStatements : StatementRuntimeInformation { - [Statement("let", SearchMode.StartOfLine, SpaceAround.End, System.ConsoleColor.DarkBlue, Priority = Priority.VeryLow, Separator = "=")] + [Statement("var", SearchMode.StartOfLine, SpaceAround.End, System.ConsoleColor.DarkBlue, Priority = Priority.VeryLow, Separator = "=")] public void DefineVariable(string args) { string[] parts = args.Split('='); @@ -118,3 +118,4 @@ internal partial class VariableStatements : StatementRuntimeInformation [GeneratedRegex("\\$\\{([a-zA-Z0-9]+)\\}")] private static partial Regex VariableStatementRegex(); } +