Implement basic execution system and UI

This is a rather large commit that includes all of the following:
- React UI with code editor, runtime renderer and input-output panes
- Language providers for a sample language and Brainfuck
- Implementation of code execution in a web worker
- All-at-once unabortable execution of program fully functional
This commit is contained in:
Nilay Majorwar
2021-12-14 21:58:13 +05:30
parent 8746c803d7
commit 01ba292b9f
35 changed files with 3532 additions and 3529 deletions

View File

@@ -0,0 +1,23 @@
import { StepExecutionResult } from "./types";
export type WorkerRequestData =
| {
type: "Init";
params?: null;
}
| {
type: "Reset";
params?: null;
}
| {
type: "Prepare";
params: { code: string; input: string };
}
| {
type: "Execute";
params: { interval?: number };
};
export type WorkerResponseData<RS> =
| { type: "state"; data: "empty" | "ready" }
| { type: "result"; data: StepExecutionResult<RS> };