New features and bug fixes

- Fix import (`imp`) bug-
- Add is in parameter available (`isi`) statement
- Add is out parameter available (`iso`) statement
This commit is contained in:
Stone_Red
2022-03-24 21:16:32 +01:00
parent 83f99d4dd5
commit 0a4406d21f
8 changed files with 166 additions and 5 deletions
@@ -62,6 +62,15 @@ namespace YesNt.Interpreter.Statements
}
}
[Statement("%iso", SearchMode.Contains, SpaceAround.End, ConsoleColor.Yellow, KeepStatementInArgs = true, Priority = Priority.Highest)]
public void CheckIfOutParameterAvalible(string args)
{
args += " ";
args = args.Replace("%iso ", $"{RuntimeInfo.OutParametersStack.Count > 0} ");
RuntimeInfo.CurrentLine = args.TrimEnd();
}
[Statement("cal", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.DarkYellow, Priority = Priority.Low, Seperator = "|")]
public void Call(string args)
{
@@ -119,6 +128,21 @@ namespace YesNt.Interpreter.Statements
}
}
[Statement("%isi", SearchMode.Contains, SpaceAround.End, ConsoleColor.Yellow, KeepStatementInArgs = true, Priority = Priority.Highest)]
public void CheckIfInParameterAvalible(string args)
{
if (!RuntimeInfo.IsInFunction)
{
RuntimeInfo.Exit("Statement not allowed outside of function", true);
return;
}
args += " ";
args = args.Replace("%isi ", $"{RuntimeInfo.FunctionCallStack.Peek().Arguemtns.Count > 0} ");
RuntimeInfo.CurrentLine = args.TrimEnd();
}
[Statement("put", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Yellow)]
public void AddOutParameter(string args)
{