mirror of
https://github.com/Stone-Red-Code/RemSox.git
synced 2026-09-04 09:06:23 +02:00
48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
using System;
|
|
using RemSox.Processing;
|
|
using RemSox.Utils;
|
|
using YesNt.Interpreter.Runtime;
|
|
using YesNt.Interpreter.Utilities;
|
|
|
|
namespace RemSox.Processes
|
|
{
|
|
public class YesNtInterpreterProcess() : Process("YesNtInterpreter")
|
|
{
|
|
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();
|
|
|
|
YesNtWindowStatements.Register(interpreter, this);
|
|
|
|
interpreter.Prepare([.. args]);
|
|
}
|
|
|
|
internal override void Tick()
|
|
{
|
|
if (interpreter.IsRunning)
|
|
{
|
|
interpreter.Step();
|
|
}
|
|
else
|
|
{
|
|
RequestStop();
|
|
}
|
|
}
|
|
|
|
internal override void Stop()
|
|
{
|
|
interpreter.Stop();
|
|
}
|
|
}
|
|
} |