mirror of
https://github.com/Stone-Red-Code/RemSox.git
synced 2026-09-04 09:06:23 +02:00
46 lines
1022 B
C#
46 lines
1022 B
C#
using RemSox.Processing;
|
|
using RemSox.Utils;
|
|
|
|
using YesNt.Interpreter.Runtime;
|
|
|
|
namespace RemSox.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();
|
|
}
|
|
} |