From 2522868379f88c52c9c349f18fd7af4b720f82a4 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 11 Jan 2022 22:03:08 +0100 Subject: [PATCH] - Change parameter keywords color - Fix calculation bug --- .../Statements/FunctionStatements.cs | 8 +-- YesNt.Interpreter/Utilities/Evaluator.cs | 59 +++++++++++-------- 2 files changed, 38 insertions(+), 29 deletions(-) diff --git a/YesNt.Interpreter/Statements/FunctionStatements.cs b/YesNt.Interpreter/Statements/FunctionStatements.cs index af72c7c..671c9f2 100644 --- a/YesNt.Interpreter/Statements/FunctionStatements.cs +++ b/YesNt.Interpreter/Statements/FunctionStatements.cs @@ -35,13 +35,13 @@ namespace YesNt.Interpreter.Statements RuntimeInfo.IsInFunction = true; } - [Statement("in", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.DarkYellow)] + [Statement("in", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Yellow)] public void AddInParameter(string args) { RuntimeInfo.InParametersStack.Push(args); } - [Statement("out", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.DarkYellow)] + [Statement("out", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Yellow)] public void GetOutParameter(string name) { if (RuntimeInfo.OutParametersStack.Count == 0) @@ -53,7 +53,7 @@ namespace YesNt.Interpreter.Statements RuntimeInfo.Variables.Add(name, RuntimeInfo.OutParametersStack.Pop()); } - [Statement("get", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.DarkYellow)] + [Statement("get", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Yellow)] public void GetInParameter(string args) { if (RuntimeInfo.FunctionCallStack.Count == 0) @@ -71,7 +71,7 @@ namespace YesNt.Interpreter.Statements RuntimeInfo.Variables.TryAdd(args, RuntimeInfo.FunctionCallStack.Peek().Arguemtns.Pop()); } - [Statement("put", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.DarkYellow)] + [Statement("put", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Yellow)] public void AddOutParameter(string args) { if (RuntimeInfo.FunctionCallStack.Count == 0) diff --git a/YesNt.Interpreter/Utilities/Evaluator.cs b/YesNt.Interpreter/Utilities/Evaluator.cs index 83fdb12..c6dfccd 100644 --- a/YesNt.Interpreter/Utilities/Evaluator.cs +++ b/YesNt.Interpreter/Utilities/Evaluator.cs @@ -22,6 +22,32 @@ namespace YesNt.Interpreter.Utilities return part1 != part2; } + parts = input.Split(">="); + if (parts.Length == 2) + { + bool succ1 = parts[0].ToStandardizedNumber(out double part1); + bool succ2 = parts[1].ToStandardizedNumber(out double part2); + if (!succ1 || !succ2) + { + return false; + } + + return part1 >= part2; + } + + parts = input.Split("<="); + if (parts.Length == 2) + { + bool succ1 = parts[0].ToStandardizedNumber(out double part1); + bool succ2 = parts[1].ToStandardizedNumber(out double part2); + if (!succ1 || !succ2) + { + return false; + } + + return part1 <= part2; + } + parts = input.Split(">"); if (parts.Length == 2) { @@ -48,31 +74,7 @@ namespace YesNt.Interpreter.Utilities return part1 < part2; } - parts = input.Split(">="); - if (parts.Length == 2) - { - bool succ1 = parts[0].ToStandardizedNumber(out double part1); - bool succ2 = parts[1].ToStandardizedNumber(out double part2); - if (!succ1 || !succ2) - { - return false; - } - return part1 >= part2; - } - - parts = input.Split("<="); - if (parts.Length == 2) - { - bool succ1 = parts[0].ToStandardizedNumber(out double part1); - bool succ2 = parts[1].ToStandardizedNumber(out double part2); - if (!succ1 || !succ2) - { - return false; - } - - return part1 <= part2; - } return null; } @@ -158,7 +160,14 @@ namespace YesNt.Interpreter.Utilities } } - return number.ToString(); + if (number % 1 == 0) + { + return number.ToString(); + } + else + { + return number.ToString("F99").Trim('0'); + } } } } \ No newline at end of file