- Change parameter keywords color

- Fix calculation bug
This commit is contained in:
Stone_Red
2022-01-11 22:03:08 +01:00
parent 895eb51c8d
commit 2522868379
2 changed files with 38 additions and 29 deletions
@@ -35,13 +35,13 @@ namespace YesNt.Interpreter.Statements
RuntimeInfo.IsInFunction = true; RuntimeInfo.IsInFunction = true;
} }
[Statement("in", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.DarkYellow)] [Statement("in", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Yellow)]
public void AddInParameter(string args) public void AddInParameter(string args)
{ {
RuntimeInfo.InParametersStack.Push(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) public void GetOutParameter(string name)
{ {
if (RuntimeInfo.OutParametersStack.Count == 0) if (RuntimeInfo.OutParametersStack.Count == 0)
@@ -53,7 +53,7 @@ namespace YesNt.Interpreter.Statements
RuntimeInfo.Variables.Add(name, RuntimeInfo.OutParametersStack.Pop()); 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) public void GetInParameter(string args)
{ {
if (RuntimeInfo.FunctionCallStack.Count == 0) if (RuntimeInfo.FunctionCallStack.Count == 0)
@@ -71,7 +71,7 @@ namespace YesNt.Interpreter.Statements
RuntimeInfo.Variables.TryAdd(args, RuntimeInfo.FunctionCallStack.Peek().Arguemtns.Pop()); 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) public void AddOutParameter(string args)
{ {
if (RuntimeInfo.FunctionCallStack.Count == 0) if (RuntimeInfo.FunctionCallStack.Count == 0)
+34 -25
View File
@@ -22,6 +22,32 @@ namespace YesNt.Interpreter.Utilities
return part1 != part2; 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(">"); parts = input.Split(">");
if (parts.Length == 2) if (parts.Length == 2)
{ {
@@ -48,31 +74,7 @@ namespace YesNt.Interpreter.Utilities
return part1 < part2; 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; 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');
}
} }
} }
} }