What features does this library include? At the heart of the code is a continuation-based parser implementing a basic parser state machine. Continuations allow users to accumulate multiple streams of characters, and parse each stream simultaneously. A continuation allows the parser to stop midstream, start working on a new expression, and return to the first without corruption of complex state management in the users code. No threads, no forking, nothing more than a data structure that must be passed in and captured as data becomes available to parse. Once an expression has been parsed, a simple structure is returned that represents the "abstract syntax tree" of the parsed expression. For the majority of users, the parser and this data structure will be all that they will ever need to see. For convenience reasons, other functions such as I/O wrappers and AST traversal routines have been included, but they are not required if users don't wish to use them.
Additionally, this library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, U SA