Skip to content

Releases

🐱 dotnet-lolcode v0.2.0 — NuGet Package READMEs

Choose a tag to compare

@github-actions github-actions released this 06 Feb 22:44

🐱 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 new usage, 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.0

Create hello.lol:

#:sdk Lolcode.NET.Sdk/0.2.0

HAI 1.2
  VISIBLE "HAI WORLD!"
KTHXBYE

Run it:

dotnet hello.lol

Project-Based Apps

dotnet new install Lolcode.NET.Templates::0.2.0
dotnet new lolcode -n MyApp
cd MyApp
dotnet run

Full 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 #:sdk directive
  • ✅ dotnet new lolcode project 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.0

Full Changelog: v0.1.0...v0.2.0

🐱 v0.1.0 — First Release!

Choose a tag to compare

@mattleibow mattleibow released this 06 Feb 22:26

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 / OMGWTF with fall-through semantics
  • Loops — IM IN YR with UPPIN, 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 — SMOOSH concatenation, :{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 LOLxxxx error 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.lol

16 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 run

Requirements

  • .NET 10 SDK

Full Changelog: https://github.com/mattleibow/dotnet-lolcode/commits/v0.1.0