Repository navigation
Releases
Releases · mattleibow/dotnet-lolcode
🐱 dotnet-lolcode v0.2.0 — NuGet Package READMEs
🐱 dotnet-lolcode v0.2.0
LOLCODE 1.2 compiler for .NET 10 — now with polished NuGet package documentation!
What's New in v0.2.0
📖 NuGet Package READMEs
All three published NuGet packages now include rich README documentation that shows up directly on nuget.org:
- Lolcode.NET.Sdk — Quick start guide, project-based and file-based app setup, full language feature showcase
- Lolcode.NET.Templates — Installation instructions,
dotnet newusage, copy-paste LOLCODE snippets (FizzBuzz, recursion, I/O, switch statements) - Lolcode.Runtime — Explains what the runtime provides and how it's auto-referenced
Getting Started
File-Based Apps (Zero Config!)
dotnet new tool-manifest
dotnet tool install Lolcode.NET.Sdk --version 0.2.0Create hello.lol:
#:sdk Lolcode.NET.Sdk/0.2.0
HAI 1.2
VISIBLE "HAI WORLD!"
KTHXBYE
Run it:
dotnet hello.lolProject-Based Apps
dotnet new install Lolcode.NET.Templates::0.2.0
dotnet new lolcode -n MyApp
cd MyApp
dotnet runFull Feature Set
- ✅ Complete LOLCODE 1.2 language support
- ✅ Compiles to .NET 10 IL assemblies via
PersistedAssemblyBuilder - ✅ MSBuild SDK integration (
dotnet build/dotnet run) - ✅ File-based apps with
#:sdkdirective - ✅
dotnet new lolcodeproject template - ✅ 7 data types: NOOB, TROOF, NUMBR, NUMBAR, YARN, FUNKSHUN, TYPE
- ✅ Variables, math, string ops, comparison, boolean logic
- ✅ Control flow: IF/ELSE, SWITCH, 4 loop types
- ✅ Functions with parameters, recursion, and closures
- ✅ Type casting (explicit + implicit)
- ✅ String interpolation and escape sequences
- ✅ Runtime error handling with
LolRuntimeException - ✅ 289 tests (143 unit + 146 end-to-end)
- ✅ Cross-platform: Windows, macOS, Linux
Install
dotnet add package Lolcode.NET.Sdk --version 0.2.0
# or for the template:
dotnet new install Lolcode.NET.Templates::0.2.0Full Changelog: v0.1.0...v0.2.0
🐱 v0.1.0 — First Release!
A complete LOLCODE 1.2 compiler for .NET 10. Write LOLCODE, get real .NET assemblies.
HAI 1.2
VISIBLE "OH HAI! I CAN HAZ COMPILER!"
KTHXBYE✨ What's Included
Full LOLCODE 1.2 Language Support
- Variables & Types — NUMBR (int), NUMBAR (float), YARN (string), TROOF (bool), NOOB (null)
- Math —
SUM OF,DIFF OF,PRODUKT OF,QUOSHUNT OF,MOD OF,BIGGR OF,SMALLR OF - Booleans —
BOTH OF,EITHER OF,WON OF,NOT,ALL OF,ANY OF - Comparison —
BOTH SAEM,DIFFRINT(no auto-casting, per spec) - Conditionals —
O RLY?/YA RLY/MEBBE/NO WAI/OIC - Switch —
WTF?/OMG/OMGWTFwith fall-through semantics - Loops —
IM IN YRwithUPPIN,NERFIN,TIL,WILE,GTFO - Functions —
HOW IZ I/IF U SAY SO/FOUND YR/I IZ func MKAY - Casting —
MAEK x A NUMBR,x IS NOW A YARN - Strings —
SMOOSHconcatenation,:{var}interpolation, escape sequences (:),:>,::,:",:o) - I/O —
VISIBLE(print with infinite arity),GIMMEH(read input) - Comments —
BTW(line),OBTW...TLDR(block) - IT — Implicit per-scope variable, auto-returned from functions
Roslyn-Inspired Compiler Architecture
Hand-rolled, multi-phase compiler — no parser generators, no transpiling to C#:
Source (.lol) → Lexer → Parser → Binder → Lowerer → CodeGenerator → .NET DLL
- Rich diagnostics with source location, line/column info, and
LOLxxxxerror codes - Immutable syntax and bound trees
- Each phase independently testable
MSBuild SDK Integration
Build LOLCODE with standard .NET tooling:
dotnet new install Lolcode.NET.Templates
dotnet new lolcode -n MyApp
cd MyApp
dotnet run # → HAI WORLD!File-Based Apps
No project file needed:
echo '#:sdk Lolcode.NET.Sdk
HAI 1.2
VISIBLE "HAI WORLD!"
KTHXBYE' > hello.lol
dotnet run --file hello.lol16 Sample Programs
Organized into categories with dotnet run support:
- Basics (9) — hello-world, variables, math, conditionals, loops, functions, string-ops, casting, switch
- Programs (4) — fizzbuzz, fibonacci, recursion, string-calculator
- Games (3) — guessing-game, adventure-game, arena-game
289 Tests Across 2 Projects
- Unit tests — Lexer (32), Parser (25), Runtime (86)
- End-to-end tests — 19 category classes covering every language feature
- SDK integration tests — all 16 samples verified
📦 NuGet Packages
| Package | Description |
|---|---|
Lolcode.NET.Sdk |
MSBuild SDK for .lolproj projects |
Lolcode.Runtime |
Runtime library for compiled LOLCODE programs |
Lolcode.NET.Templates |
dotnet new lolcode project template |
🚀 Quick Start
# Install the template
dotnet new install Lolcode.NET.Templates
# Create and run a LOLCODE app
dotnet new lolcode -n MyApp
cd MyApp
dotnet runRequirements
- .NET 10 SDK
Full Changelog: https://github.com/mattleibow/dotnet-lolcode/commits/v0.1.0