-
nimly - Lexer Generator and Parser Generator as a Library in Nim.
With nimly, you can make lexer/parser by writing definition in formats like lex/yacc. nimly generates lexer and parser by using macro in compile-time, so you can use nimly not as external tool of your program but as a library.
-
npeg - parsing expression grammars in nim
NPeg is a pure Nim pattern matching library. It provides macros to compile patterns and grammars (PEGs) to Nim procedures which will parse a string and collect selected parts of the input.K
-
lilt parser generator
Lilt is a content-free parser generator. It accepts a specification and returns a parser based on that specification. Lilt specifications look very similar to Backus-Naur form, but have extra syntax in order to be a parser generator rather than just a grammar specification.
-
std/lexbase - This module implements a base object of a lexer with efficient buffer handling.
-
hparse - Collection of parser utilities for nim - compile/runtime parser generator.
Collection of various utilities related to parsing, ranging from statically typed wrapper on top of scanf to full parser generator (with support for EBNF notation, tree actions, template rules, compile/runtime parsing and automatic parse tree generation)
-
treesitter wrappers
Grammars are available for the following languages:
- Agda
- Bash
- C / C++ / C# / CSS
- Go
- Haskell, HTML
- Java, Javascript
- OCaml
- PHP, Python
- Ruby, Rust
- Scala
- Typescript
-
std/parsesql - sql
-
hcparse - Higher-level bindings for libclang in nim.
-
protobuf-nim - Protobuf implementation in pure Nim that leverages the power of the macro system to not depend on any external tools
-
yaml - NimYAML is a pure YAML implementation for Nim. It is able to read from and write to YAML character streams, and to serialize from and construct to native Nim types. It exclusively supports YAML 1.2.
-
std/xmlparser, std/parsexml - xml # What is the difference?
-
std/json - json
-
std/parsecsv - csv
-
std/sexp S-expressions parser
- laser/photon_jit - Laser offers its own JIT assembler with features being added on a as needed basis. It is very lightweight and easy to extend.
Examples of language implementatin in nim.
- nim-lang itself - compiler is written entirely in nim
- japl - JAPL is an interpreted, dynamically-typed, garbage-collected and minimalistic programming language with C- and Java-like syntax.
- arturo - Simple, modern and portable interpreted programming language for efficient scripting
- spry - A Smalltalk and Rebol inspired language implemented as an AST interpreter in Nim
- project site
- more articles
- make a lisp implementation in nim
- lox language implementation
- hayago - hayago is a small, fast, embeddable, statically typed scripting language, written in Nim. Its syntax is inspired by Nim itself.
- min is a functional, concatenative programming language with a minimalist syntax, a small but practical standard library, and an advanced REPL. All packed in about 1MB*.