Open Source
LGPL
Aurochs
[03-Dec-2007, version
v60,
Beta]
Aurochs is a parser generator that uses the parse expression grammar
(PEG) or "packrat" approach. It takes a grammar in a BNF-like notation
(a .peg file) and produces bytecode (a .nog file) for a stack automaton.
This bytecode is later interpreted on the input to parse using a C
library. Bindings are given for Ocaml and Java. Aurochs can also
directly produce C or Ocaml code for parsing. It is in use
at Exalead where we use it daily to parse real-world Javascript.
Camllexer
[02-Jul-2012, version
1.1,
Stable]
Camllexer is an enhanced lexer for Caml dialects.
The lexer has been extracted from the Camlp4 (> 3.10) lexer, which in turns was reimplemented as a derivative of the lexer from the OCaml compiler.
IoXML
[01-Feb-2002, version
0.6,
Beta]
IoXML allows defining XML parsers and pretty-printers directly from data type definitions.
OCaml Iteratees
[04-Jul-2011, version
0.3,
Beta]
OCaml port of Iteratees (safe, practical, declarative input processing, by Oleg Kiselyov) to OCaml.
Ostap
[04-May-2006, version
0.1,
Beta]

Ostap is an OCaml module to provide a set of parser combinators. The name of this library originates from Ostap Bender --- the central character of Ilya Ilf and Eugene Petrov's comedy "The Twelve Chairs". Bender is generally referred to as "The Great Combinator" since the word "combinator" in Russian also means "a swindler", "a sly man" etc.
Additionally to the common set of parser combinators Ostap provides a camlp4 syntax extension pa_ostap.cmo to embed grammar expressions written in BNF-like style into OCaml code. Another feature of pa_ostap is that it allows to consider streams as objects and so makes integration of lexers and parsers simpler. Please have a look at the documentation for details.
ulex
[16-Oct-2003, version
0.4,
Beta]
Ulex is a lexer generator for Unicode and OCaml.
GPL
Config_file
[14-Jan-2011, version
1.0,
Stable]
This library allows one to save configuration parameters (basic types, lists,
user defined, etc.) into a file and load them. The configuration file is human
readable, structured and allow (* *) comments.
JavaLib and Sawja
[08-Oct-2012, version
2.2.2/1.4,
Stable]


manipulate, and generate valid .class files.Sawja is a library relying on Javalib to provide a high level representation of Java bytecode programs. Its name stands for Static Analysis Workshop for Java. Whereas Javalib is dedicated to isolated classes, Sawja handles bytecode programs with their class hierarchy and control flow algorithms. Moreover, Sawja provides some stackless intermediate representations of code. The transformation algorithm, common to these representations, has been formalized and proved to be semantics-preserving.An Eclipse plugin for Sawja analyses is also available: it allows developers to add an analysis in Eclipse without requiring any additional Java code generation.
Odot
[19-Dec-2005, version
0.5,
Beta]
Odot is a small OCaml library to parse and print Graphviz dot files. It comes with an additional module defining a Lablgtk2 box to display such graphs, and handle mouse clicks on nodes.
Ragel
[04-Jul-2011, version
6.7,
Stable]

Ragel compiles executable finite state machines from regular languages. Ragel targets C, C++, Objective-C, D, Java and Ruby. Ragel state machines can not only recognize byte sequences as regular expression machines do, but can also execute code at arbitrary points in the recognition of a regular language. Code embedding is done using inline operators that do not disrupt the regular language syntax.
Yacclib
[01-Dec-2005, version
0.4,
Beta]
Yacclib is a small OCaml library to parse and print OCamlyacc .mly files. It can also print dot graphs from these files. It comes with a graphical editor for .mly files.
BSD
Jsonm
[07-May-2012, version
0.9.0,
Beta]

Jsonm is a non-blocking streaming codec to decode and encode the JSON data format. It can process JSON text without blocking on IO and without a complete in-memory representation of the data.
The uncut codec also processes whitespace and (non-standard) JSON with JavaScript comments.
OCaml WordNet
[19-Apr-2006, version
0.1,
Beta]

This package contains the OCaml Interface to WordNet 2.1. It enables Ocaml programs to use
the Wordnet dictionary for (english) word forms and meanings. This library directly parses the WordNet dictionary files, and does not depend on any other libraries. This library requires WordNet 2.1 to be installed (WordNet is available as a free download).
Oni
[24-Nov-2010, version
1.00,
Stable]

A modular framework of Objective Caml libraries comprising general purpose utilities and functional data structures, a more flexible abstraction of the system network sockets layer than the standard library, and modules to support the development of concurrent, single-threaded network application services with a functional programming style.
Apache
BNC
[20-Feb-2004, version
0.0.1,
Development code]
A lexer/parser for turning files tagged for the British National Corpus into something usefully symbolically manipulated in OCaml.
Others
Dypgen
[23-Oct-2006, version
20061020,
Beta]

Dypgen is a GLR parser generator for Objective Caml, it is able to generate dynamically extensible parsers.
Menhir
[09-Sep-2008, version
20080908,
Beta]

Menhir is an LR(1) parser generator for the Objective Caml programming language.
OCaml-Packrat
[23-Jan-2007, version
0.5.1,
Beta]
Packrat parser generator for OCaml.
OCamllex tutorial
[15-Nov-2004, version
2004-11-10]
This is a tutorial on how to use ocamllex.
OCamlyacc tutorial
[15-Nov-2004, version
2004-11-16,
Stable]
This is a tutorial on how to use ocamlyacc.
ocfgc
[28-Dec-2005, version
0.4.1,
Beta]
A parser generator for ordered context free grammars (OCFG) based on GLR (Generalized LR) parsing, also known as Tomita's parsing.
Planck
[04-Jul-2011, version
1.0.0,
Stable]
A small monadic parser combinator library for OCaml.