12 packages tagged with “Loyc”
A library of interfaces, enums, and delegates that are useful in a broad range of software projects, according to the theme "things that should be built into the .NET framework, but aren’t". Also contains a small number of essential structs and classes, most notably Symbol, UString, Maybe<T>, and Localize. These are types that the interfaces refer to, or that the concrete types themselves depend on.
Loyc.Syntax implements various interfaces and helper classes for Loyc Languages and for users of LLLPG. It also implements Loyc trees for .NET (LNode), and parsers and printers for Loyc Expression Syntax (LES) versions 2 and 3.
Additional functionality beyond `System.Math` in `MathEx`; generic geometry interfaces and structures (points, lines, rectangles); numeric interfaces and "trait" types for doing arithmetic in generic code; fixed-point structures; 128-bit integer arithmetic. Contributors welcome: looking for things that ought to be built into the .NET framework, but aren't
Loyc.Utilities contains useful non-core functionality that is either (A) not important enough to be placed in Loyc.Essentials or (B) takes Loyc.Collections, Loyc.Math or Loyc.Syntax as a dependency.
Loyc.Collections is a library of sophisticated data structures that implement standard .NET collection interfaces. It includes ALists, VLists, hash tree types (Set<T>, MSet<T>, Map<K,V> and MMap<K,V>), and min/max heaps.
A library of interfaces, extension methods, and small bits of functionality that are useful in almost any software project, according to the theme "things that should be built into the .NET framework, but aren’t". At least half of Loyc.Essentials is devoted to collections: collection interfaces, collection adapters, collection extension methods (e.g. LinqToLists) and even a couple of collection implementations. The other half includes a variety of things including Symbols, a localization helper, "message sinks", a miniature NUnit clone and more.
LLLPG is a recursive-decent parser generator for C#, with Visual Studio integration and a feature set better than ANTLR version 2. This package contains the core LLLPG executable, which can be run from the command-line. Visual Studio users should typically download a release of LeMP from https://github.com/qwertie/ecsharp/releases instead of using this package.
Enhanced C# (or EC#) is a liberalization and regularization of the C# language. This package contains the Loyc.Ecs.dll core library, which allows you to parse C# or EC# code and to print out C# or EC# syntax trees as code. If you want to expand EC# macros, you also need the LeMP package. To generate code at compile-time within your project, use LeMP: http://ecsharp.net/lemp
LeMP is an open-source Lisp-inspired macro processor for C#. It helps you avoid writing boilerplate and repetitive code, and it provides a framework in which you can run code-generation algorithms at compile-time. This is the library version! The command-line tool package is called LeMP-Tool. Or, to integrate LeMP into Visual Studio, please download a release from https://github.com/qwertie/ecsharp/releases
Loyc.Binary is a library that can read and write Binary Loyc Tree (BLT) files: a binary encoding of LNode objects.
A set of useful libraries for many kinds of .NET developers, starting with Loyc.Essentials, a library that "fills in the gaps" in the core of the .NET Base Class Library. LoycCore is especially focused on collections: classes, interfaces, adapters, and extension methods. Plus, Loyc.Syntax.dll parses LES, a superset of JSON that resembles C/C#/Java/Ecmascript/D, and runtime helper classes for the Loyc LL(k) parser generator. Contributors are welcome: more unit tests, code reviews, and new features are desired, anything relatively small (under about 3000 lines of code) that fits the theme "things that should have been built into the .NET framework, but aren't".
Pixie is a C# library that prints beautifully formatted output to the console. You describe your layout using a high-level API and Pixie turns it into neatly-formatted text. This package contains Pixie.Loyc, a library that translates Loyc diagnostics to Pixie markup nodes.