All Projects → schneiderfelipe → microparsec

schneiderfelipe / microparsec

Licence: MIT License
⭐ A performant Nim parsing library built for humans.

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to microparsec

autumn
A Java parser combinator library written with an unmatched feature set.
Stars: ✭ 112 (+330.77%)
Mutual labels:  parser-combinators, parser-library
leftry
Leftry - A left-recursion enabled recursive-descent parser combinator library for Lua.
Stars: ✭ 32 (+23.08%)
Mutual labels:  parser-combinators, parser-library
metal
A Java library for parsing binary data formats, using declarative descriptions.
Stars: ✭ 13 (-50%)
Mutual labels:  parser-combinators, parser-library
Cppcmb
A generic C++17 parser-combinator library with a natural grammar notation.
Stars: ✭ 108 (+315.38%)
Mutual labels:  parser-combinators, parser-library
ex spirit
No description or website provided.
Stars: ✭ 26 (+0%)
Mutual labels:  parser-combinators, parser-library
LatexDSL
A mini DSL to generate LaTeX from Nim
Stars: ✭ 22 (-15.38%)
Mutual labels:  nim-lang
nim-redisparser
RESP(REdis Serialization Protocol) Serialization for Nim
Stars: ✭ 16 (-38.46%)
Mutual labels:  nim-lang
loquat
Monadic parser combinators for JavaScript / TypeScript
Stars: ✭ 47 (+80.77%)
Mutual labels:  parser-combinators
nim-telegram-bot
Nim Telegram Bot.
Stars: ✭ 18 (-30.77%)
Mutual labels:  nim-lang
razcal
Build cross platform desktop app with Lua, MoonScript, and Layout Language
Stars: ✭ 15 (-42.31%)
Mutual labels:  nim-lang
galileo
Scala Math - Numerical (Matlab-like) and Symbolic (Mathematica-like) tool
Stars: ✭ 62 (+138.46%)
Mutual labels:  parser-combinators
cosmonim
A simple example to show how cosmopolitan libc can be used with Nim
Stars: ✭ 90 (+246.15%)
Mutual labels:  nim-lang
parser-combinators
Lightweight package providing commonly useful parser combinators
Stars: ✭ 41 (+57.69%)
Mutual labels:  parser-combinators
webgui
Web Technologies based Crossplatform GUI Framework with Dark theme
Stars: ✭ 81 (+211.54%)
Mutual labels:  nim-lang
Covfefe
A parser for nondeterministic context free languages
Stars: ✭ 49 (+88.46%)
Mutual labels:  parser-library
nim-syslog
Nim syslog module
Stars: ✭ 17 (-34.62%)
Mutual labels:  nim-lang
nimodpi
Oracle ODPI-C wrapper for Nim
Stars: ✭ 17 (-34.62%)
Mutual labels:  nim-lang
tanto
C json parser and creator library.
Stars: ✭ 21 (-19.23%)
Mutual labels:  parser-library
PigletC
A toy C-like language compiler for PigletVM
Stars: ✭ 51 (+96.15%)
Mutual labels:  parser-combinators
ppc
A parser combinator library for PHP
Stars: ✭ 34 (+30.77%)
Mutual labels:  parser-combinators
Documentation

Microparsec

[WIP] Microparsec is a fast parser combinator library with excellent error messages.

import microparsec
let p = between(
  ch('{'),
  str("hello") >> many(space) >> str("world!"),
  ch('}')
)
echo p.parse("{hello\n world?}")
Failed reading: satisfy

1:6:(13):
  |
1 |  world?}
  |       ^
unexpected '?'
expecting "world!"

Microparsec is a pure Nim adaptation of Parsec, the popular monadic parser combinator library for Haskell by Daan Leijen, Further inspiration was taken from Attoparsec and Megaparsec.

Installation

Microparsec supports Nim 1.2.6+ and can be installed using Nimble:

$ nimble install microparsec

Some references

Inspiring projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].