• Stars
    star
    1,240
  • Rank 37,884 (Top 0.8 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 12 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A monadic LL(infinity) parser combinator library for javascript

Parsimmon

!!! PARSIMMON IS CURRENTLY UNMAINTAINED !!!

Please contact @jneen if you would like to become the new maintainer.

Parsimmon

Original Authors: @jneen and @laughinghan

Previous Maintainer: @wavebeem

Parsimmon is a small library for writing big parsers made up of lots of little parsers. The API is inspired by parsec and Promises/A+.

Parsimmon supports IE7 and newer browsers, along with Node.js. It can be used as a standard Node module through npm (named parsimmon), or directly in the browser through a script tag, where it exports a global variable called Parsimmon. To download the latest browser build, use the unpkg version. For more information on how to use unpkg, see the unpkg homepage.

Code of Conduct

Everyone is expected to abide by the Contributor Covenant.

API Documentation

Examples

See the examples directory for annotated examples of parsing JSON, Lisp, a Python-ish language, and math.

Common Functions

Questions

Feel free to ask a question by filing a GitHub Issue. I'm happy to help point you in the right direction with the library, and hopefully improve the documentation so less people get confused in the future.

Contributing

Contributions are not just pull requests.

Issues clearly describing bugs or confusing parts of Parsimmon are welcome! Also, documentation enhancements and examples are very desirable.

Feeling overwhelmed about contributing? Open an issue about what you want to contribute and I'm happy to help you through to completion!

Performance

Thanks to @bd82 we have a good benchmark comparing Parsimmon CPU performance to several other parser libraries with a simple JSON parser example.

Fantasy Land

Fantasyland

Parsimmon is also compatible with fantasyland. It implements Semigroup, Apply, Applicative, Functor, Chain, and Monad.

More Repositories

1

balls

Bash on Balls
Shell
858
star
2

pjs

Classes for javascript that don't suck.
JavaScript
195
star
3

ry

The simplest ruby version manager
Shell
134
star
4

python-cache

Caching for humans
Python
63
star
5

variants-slides

Slides for "Variants are Not Unions", a talk given at Clojure Conj 2014
Clojure
16
star
6

ragel.vim

My "fork" of Adrian Thurston's syntax file
Vim Script
15
star
7

mock_redis

A little class that acts like redis-rb, but for testing on machines without redis.
Ruby
14
star
8

express-handlebars

Handlebars integration for express
JavaScript
13
star
9

color.js

The missing color library
JavaScript
9
star
10

tnetstrings-js

A tnetstrings parser for javascript (browser or node)
CoffeeScript
9
star
11

cinch-test

A testing module for the cinch IRC framework
Ruby
8
star
12

ixl-prototype

A prototype of the ixl language.
Haskell
7
star
13

eco.vim

Vim syntax highlighting for eco, embedded coffeescript DEPRECATED: see https://github.com/kchmck/vim-coffee-script/blob/master/syntax/eco.vim
Vim Script
7
star
14

rpgem

The gem-to-rpm converter, done right
Ruby
5
star
15

lolgebra

A chat framework where you can lol in math!
Ruby
5
star
16

iplogic

IPv4 swiss army chainsaw.
Ruby
5
star
17

math-tau

Ruby
4
star
18

ix

a lightweight, easily configurable modal editor
4
star
19

jim-ncurses

ncurses bindings for jimtcl
C
4
star
20

back

A middleware framework for bash CGI scripts
Shell
4
star
21

rudis

An extensible OO redis client for ruby
Ruby
3
star
22

dot

my dotfiles
Vim Script
3
star
23

thunk.js

A generator for trampoline-evaluated recursive algorithms.
JavaScript
3
star
24

netherpad

An online, plugin-friendly, shared document in node (wip)
3
star
25

netherquill

Share documents!
3
star
26

nathans-university-jayferd

Exercises for Nathan's University courses.
JavaScript
3
star
27

tweet.sh

a twitter client implemented in bash
Shell
3
star
28

express-contrib

Express framework utilities
JavaScript
3
star
29

cube

A Rubik's Cube emulator in Haskell, for testing solving algorithms and such.
Haskell
3
star
30

class.sh

Classical OO for bash (yeah you heard me)
Shell
2
star
31

workqueue

a dirt-simple in-process aggregating workqueue for parallel processing in Ruby.
Ruby
2
star
32

node-named-routes

framework-agnostic named routes for node
JavaScript
2
star
33

clojure-west-2015-slides

Groff
2
star
34

thankful_eyes.vim

A vim port of Thankful Eyes, the Gedit color scheme
Vim Script
2
star
35

ringo

the redis recipe framework
Ruby
2
star
36

wrappable

Generic module for a wrappable class
Ruby
2
star
37

tnetstrings-ruby

A ruby extension to parse and dump tnetstrings
C
2
star
38

cacher

A handy Ruby caching library with pluggable backends.
Ruby
2
star
39

stl-tulip-slides

Vim Script
2
star
40

lolgebrajs

In javascript, this time.
JavaScript
1
star
41

trello-skeletons-talk

Vim Script
1
star
42

synth

Ruby
1
star
43

smartbot

Scala
1
star
44

karel

the littlest robot
1
star
45

truth

Ruby
1
star
46

resume

my résumé
1
star
47

sokoban

an old try at a Ruby Quiz
Ruby
1
star
48

haskell-friends

my little "learning haskell" puzzle
Haskell
1
star
49

blog

a blag
JavaScript
1
star
50

ixl-rust

The ixl language, in rust this time.
Rust
1
star
51

jneen.net

My blag, based on jneen/blag
Ruby
1
star
52

plans

A clone of Grinnell Plans for general-purpose use
Ruby
1
star
53

gnome-terminal-ThankfulEyes

The Thankful Eyes theme for gnome-terminal
Shell
1
star
54

hilite.tex

shellout and syntax highlighting system for tex
TeX
1
star
55

better-schedule-search

Berkeley's schedule search sucks. We mashed it up and made it better. Now we're porting it to Sinatra.
Ruby
1
star
56

jayferd.github.com

JavaScript
1
star
57

core_ext

Things I Think Ruby Should Do For You
Ruby
1
star
58

money

a simple expense-sharing app
Ruby
1
star