Files
RemSox/RemSox.Kernel/Processes/YesNtInterpreterProcess.cs
T

46 lines
1.0 KiB
C#

using RemSox.Kernel.Processing;
using RemSox.Kernel.Utils;
using YesNt.Interpreter.Runtime;
namespace RemSox.Kernel.Processes;
public class YesNtInterpreterProcess() : Process("YesNtInterpreter")
{
private YesNtInterpreter interpreter = null!;
internal override void Start(string[] args)
{
// TODO: eventually we want to load these from a file instead of hardcoding them here
args = [
"win_create \"Test\" 320 240",
"global winId = %win_last_id",
"win_flush ${winId}",
"print ${winId}",
"label test:",
"goto test"
];
interpreter = new();
new YesNtWindowStatements(this).Register(interpreter);
interpreter.Prepare([.. args]);
}
internal override void Tick()
{
if (interpreter.IsRunning)
{
_ = interpreter.Step();
}
else
{
RequestStop();
}
}
internal override void Stop()
{
interpreter.Stop();
}
}