ASCIIMathML is a JavaScript/TypeScript library that converts simple calculator-style (AsciiMath) and LaTeX math notation to Presentation MathML. It operates both in-browser via automatic DOM transformation and server-side via a Node.js module. The codebase includes three implementations: the original monolithic ASCIIMathML.js, a TypeScript refactor with a modular parser (AsciiMathParser.ts) that uses an adapter pattern for DOM independence, and a dedicated LaTeX-to-MathML converter (LaTeXMathML.js). The main API functions (asciimath.parseMath, asciimath.AMprocessNode, asciimath.translate) enable controlled or automatic translation of delimited math expressions into MathML nodes. The TypeScript version introduces clean separation of parsing logic from the DOM, making the parser theoretically reusable across platforms.
NCalc is a .NET library for parsing and evaluating mathematical expressions, written in C# and targeting .NET Framework 3.5. It uses ANTLR 3.3 to generate a lexer and parser from a custom grammar, producing an abstract syntax tree (AST) of logical expressions. The library supports arithmetic, logical, bitwise, comparison, and ternary operators, as well as built-in functions (Abs, Sin, Round, etc.) and user-defined functions and parameters via event handlers. It also includes expression caching, error detection, and serialization. The codebase is well-structured for its era, with a clear separation between grammar, domain model, and evaluation logic. However, it is explicitly unmaintained and superseded by a newer version (ncalc/ncalc). The project uses outdated dependencies (ANTLR 3.3, .NET 3.5) and includes binary DLLs, making it unsuitable for modern .NET projects without significant migration effort. The primary value is as a historical reference or for understanding expression evaluator design patterns.