LEPL is a recursive descent parser library written in Python. It is based on parser combinator libraries popular in functional programming, but also exploits Python language features. Operators provide a friendly syntax, and the consistent use of generators supports full backtracking and resource management. Backtracking implies that a wide variety of grammars are supported; appropriate memoisation ensures that even left-recursive grammars terminate.
Flexc++ is a tool for generating scanners based on regular expressions. Flexc++ is highly comparable to the programs flex and flex++. The goal was to create a similar program, but to implement it completely in C++. Most flex and flex++ grammars should be usable with flexc++ with minor adjustments.
Ell is a library to write EBNF grammars as C++ code for quick development of LL(n) parsers or similar applications. It is not a tool to generate parsers (like ANTLR): the grammar you write is directly embedded into your C++ code. The core library is very light (less than 2000 lines of headers) and written in generation templates to achieve the fastest execution. The service provided by Ell is very similar to what Boost Spirit provides, but with a simpler object model, and without the need of the Boost library (it only depends on STL).
YAJL (Yet Another JSON Library) is a small event-driven (SAX-style) JSON parser written in ANSI C, and a small validating JSON generator. It's highly portable, data representation independent, fast, generates verbose error messages including context of where the error occurs in the input text, can parse JSON data incrementally off a stream, and is tiny.
stupid-xml is a ridiculously simple annotation-based XML stream parser for Java. The main goal of this project is to get the strings you care about out of XML and into Java as quickly as possible. You define a simple model class, specify the relative paths for its fields, and it will start generating instances for you from an XML stream. The functionality is limited. It will only parse Strings into your model, but this keeps everything extremely simple. Once you have the Strings in your model, you can perform filtering or more complex conversions.