agdarsec - Total Parser Combinators in Agda

  •        13

Total Parser Combinators in Agda



Related Projects

scala-parser-combinators - simple combinator-based parsing for Scala

  •    Scala

This library is now community-maintained. If you are interested in helping please contact @gourlaysama or mention it on Gitter. As of Scala 2.11, this library is a separate jar that can be omitted from Scala projects that do not use Parser Combinators.

nom - Rust parser combinator framework

  •    Rust

nom is a parser combinators library written in Rust. Its goal is to provide tools to build safe parsers without compromising the speed or memory consumption. To that end, it uses extensively Rust's strong typing and memory safety to produce fast and correct parsers, and provides macros and traits to abstract most of the error prone plumbing. If you need any help developing your parsers, please ping geal on IRC (mozilla, freenode, geeknode, oftc), go to #nom on Mozilla IRC, or on the Gitter chat room.

combine - A parser combinator library for Rust

  •    Rust

An implementation of parser combinators for Rust, inspired by the Haskell library Parsec. As in Parsec the parsers are LL(1) by default but they can opt-in to arbitrary lookahead using the try combinator. Larger examples can be found in the examples, tests and benches folders.

HoTT-Agda - Development of homotopy type theory in Agda

  •    Agda

This repository contains a development of homotopy type theory and univalent foundations in Agda. The structure of the source code is described below. The code is loosely broken into core and theorems Agda libraries. You need Agda 2.5.3 or newer and include at least the path to core.agda-lib in your Agda library list. See CHANGELOG of Agda 2.5 for more information.

TagSoup - HTML/XML parser for Haskell

  •    Haskell

TagSoup is a library for parsing HTML/XML. It supports the HTML 5 specification, and can be used to parse either well-formed XML, or unstructured and malformed HTML from the web. The library also provides useful functions to extract information from an HTML document, making it ideal for screen-scraping.

agda - Agda is a dependently typed programming language / interactive theorem prover.

  •    Haskell

Note that this README is only about Agda, not its standard library. See the Agda Wiki for information about the library.

gll-combinators - A parser combinator library based on the GLL algorithm

  •    Scala

A parser combinator library based on the GLL algorithm

parsimmon - A monadic LL(infinity) parser combinator library for javascript

  •    Javascript

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.

homoiconic - An experiment in publishing code and words about code on a small scale.

  •    Ruby

Homoiconic was really simple: Snippets of code and words about snippets of code. I avoided words by themselves. And the words existed to amplify and explain the code, rather than the code existing to illustrate the words. This was the opposite of most of the posts we could find on traditional (circa 2004) blogs. Many people link to my series on combinators: Kestrels, The Thrush, Songs of the Cardinal, Quirky Birds and Meta-Syntactic Programming, Aspect-Oriented Programming in Ruby using Combinator Birds, The Enchaining and Obdurate Kestrels, Finding Joy in Combinators, Refactoring Methods with Recursive Combinators, Practical Recursive Combinators, The Hopelessly Egocentric Blog Post, and Wrapping Combinators.

learn-you-an-agda - Learn you an Agda (and achieve enlightenment)

  •    Haskell

Learn you an Agda (and achieve enlightenment)

csharp-monad - Library of monads for C#

  •    CSharp

A C# library of monads and a full set of parser combinators based on the Haskell Parsec library.The library is stable, functional and pretty well tested.

url-pattern - easier than regex string matching patterns for urls and other strings

  •    CoffeeScript

easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.a pattern is immutable after construction. none of its methods changes its state. that makes it easier to reason about.

yay - Yay is a high level PHP preprocessor

  •    PHP

This means that language features could be distributed as composer packages (as long as the macro based implementations can be expressed in pure PHP code, and the implementation is fast enough). Roadmap.


  •    Python

The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code. The Python representation of the grammar is quite readable, owing to the self-explanatory class names, and the use of '+', '|' and '^' operator definitions.

plumbum - Plumbum: Shell Combinators

  •    Python

Plumbum: Shell Combinators

FsCheck - Random Testing for .NET

  •    F#

FsCheck is a tool for testing .NET programs automatically. The programmer provides a specification of the program, in the form of properties which functions, methods or objects should satisfy, and FsCheck then tests that the properties hold in a large number of randomly generated cases. While writing the properties, you are actually writing a testable specification of your program. Specifications are expressed in F#, C# or VB, using combinators defined in the FsCheck library. FsCheck provides combinators to define properties, observe the distribution of test data, and define test data generators. When a property fails, FsCheck automatically displays a minimal counter example.FsCheck is a port of Haskell's QuickCheck. Important parts of the manual for using FsCheck is almost literally adapted from the QuickCheck manual. Any errors and omissions are entirely my responsibility.

suave - Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition

  •    F#

Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition. Suave is inspired in the simplicity of Happstack and born out of the necessity of embedding web server capabilities in my own applications. Suave supports Websocket, HTTPS, multiple TCP/IP bindings, Basic Access Authentication, Keep-Alive. Suave also takes advantage of F# asynchronous workflows to perform non-blocking IO. In fact, Suave is written in a completely non-blocking fashion throughout.

parser-lib - Collection of parsers written in JavaScript

  •    Javascript

The ParserLib CSS parser is a CSS3 SAX-inspired parser written in JavaScript. It handles standard CSS syntax as well as validation (checking of property names and values) although it is not guaranteed to thoroughly validate all possible CSS properties.The CSS parser is built for a number of different JavaScript environments. The most recently released version of the parser can be found in the dist directory when you check out the repository; run npm run build to regenerate them from the latest sources.