FiMSharp 0.3.3

There is a newer version of this package available.
See the version list below for details.
dotnet add package FiMSharp --version 0.3.3
NuGet\Install-Package FiMSharp -Version 0.3.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FiMSharp" Version="0.3.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FiMSharp --version 0.3.3
#r "nuget: FiMSharp, 0.3.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FiMSharp as a Cake Addin
#addin nuget:?package=FiMSharp&version=0.3.3

// Install FiMSharp as a Cake Tool
#tool nuget:?package=FiMSharp&version=0.3.3

🐎 FiMSharp

GitHub release (latest by date) Nuget

FiMSharp is a FiM++ interpreter library written in C#.

🖥 Usage

To use the library, simply include the library to your project:

using FiMSharp;

And create a FiMReport with the lines of your report!

FiMReport report = new FiMReport( lines );

// Run the main paragraph!
if( report.MainParagraph != null ) report.MainParagraph.Execute();

You can also build and use FiMSharp.Test.

🔃 Compiling

You'll need .NET SDK to compile the solution from source.

Most of the work can be done by the included makefile.

Included runtimes are:

  • win32 - Windows x86-64
  • win - Windows x64
  • linux - Linux-x64
  • linuxarm - Linux ARM
  • darwin - OSX-64

You can use this command to build the Win32 executable of FiMSharp.Test

make win32

🏃‍♀️ Running (FiMSharp.Test)

The releases page should include a bin.zip which contains:

  • A pre-built .dll for both FiMSharp and FiMSharp.Javascript
  • Pre-built executables for different platforms listed in the release.

🐳 Running from Docker

FiMSharp is also available on Docker as Docker container. While it makes it easy to setup FiMSharp at many machine, it comes with a large filesize.

docker pull jaezmien/fimsharp:0.3.3

Example usage:

docker run jaezmien/fimsharp:0.3.3 Reports/hello.fim

For reports which require user inputs, you'll need to add the -i flag.

docker run -i jaezmien/fimsharp:0.3.3 Reports/input.fim

📚 External Resources

Esolangs Page

FiM++ Fandom

Language Specification

Original EQD Post

Online Interpreter using Blazor

Docker Container

📝 Notes

  • FiMSharp is just a personal hobby project, seeing as FiM++ has never been updated for quite some time now.

  • The syntax used here follows the proposed Sparkle 1.0 syntax, unlike what fimpp uses. You can see the difference in readability in the Brainfuck Interpreter example:

  • This is my first semi-compilcated README.md, please yell at me on the issues page if I did something wrong 🙏

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.3 is compatible.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 was computed.  netstandard2.1 was computed. 
.NET Framework net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.4.1 930 8/7/2022
0.4.0 925 7/30/2022
0.3.3 885 5/2/2021
0.3.2 815 5/1/2021
0.3.1 741 3/18/2021
0.3.0 1,157 1/11/2021