Shared abstraction interfaces for Esolang.NET projects (Funge-98, Brainfuck, Piet).
This repository provides common abstractions used across multiple esolang interpreter and code generator projects:
- Esolang.Funge — Funge-98 parser, processor, and generator
- Esolang.Brainfuck — Brainfuck interpreter and generator
- Esolang.Piet — Piet parser, processor, and generator
Unified processor abstractions for esolang execution.
dotnet add package Esolang.Processor.AbstractionsProvides:
IProcessor<TProgram>— Base interface holding a parsed programITextProcessor<TProgram>— Execution viaTextReader/TextWriterIPipeProcessor<TProgram>— Execution viaPipeReader/PipeWriter
using Esolang.Processor;
// Implement in your processor
public class MyProcessor : ITextProcessor<MyProgram>
{
public MyProgram Program { get; }
public int RunToEnd(TextReader? input = null, TextWriter? output = null, CancellationToken ct = default)
{
// Execute program and return exit code
}
public ValueTask<int> RunToEndAsync(TextReader? input = null, TextWriter? output = null, CancellationToken ct = default)
{
// Async variant
}
}Contributions are welcome. Please ensure code follows the project's .editorconfig and coding standards.
See LICENSE for details.