JCPP is a complete, compliant, standalone, pure Java implementation of the C preprocessor. It is intended to be of use to people writing C-style compilers in Java using tools like sablecc, antlr, JLex, CUP, and so forth. It has been used to successfully preprocess much of the source code of the GNU C library.
pyPEG is a quick and easy solution for creating a parser in Python programs. pyPEG uses a PEG language in Python data structures to parse, so it can be used dynamically to parse nearly every context free language. The output is a plain Python data structure called pyAST, or, as an alternative, XML.
MIB Smithy is an application for SNMP and COPS developers, MIB and PIB designers, and Internet-draft authors. It provides a GUI-based environment for designing, editing, and compiling MIB and PIB modules according to the SMIv1, SMIv2, and COPS-PR-SPPI standards. It accelerates the development process by providing an easy-to-use GUI-based environment for developing the specifications without the syntax and formatting concerns of editing the modules by hand. It includes a number of built-in basic SNMP management tools, XML support, and (with MIB Smithy Professional) support for custom compiler output formats.
MIB Smithy SDK is a dynamic extension to Tcl/Tk (8.4+) that allows development of custom scripts for controlling SNMP agents, manipulating SMI definitions, doing conversions, and more. It is based on the core of Muonics' MIB Smithy, and the SDK supports SMIv1 and SMIv2, as well as SNMPv1/v2c/v3 with HMAC-SHA-96 and HMAC-MD5-96 authentication and DES/CBC and AES128/CFB privacy. It also provides complete read-write access to all elements of SMI/MIB Module definitions, unlike similar extensions that provide only read access to a limited subset. The SDK allows multiple discrete SMI databases and SNMP sessions, and provides all of the built-in validation and error recovery capabilites of the full product, without the visual MIB development environment.
ANTLR (ANother Tool for Language Recognition) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing C++, Java, or Sather actions. It is similar to the popular compiler generator YACC, however ANTLR is much more powerful and easy to use. ANTLR-produced parsers are not only highly efficient, but are both human-readable and human-debuggable (especially with the interactive ParseView debugging tool). ANTLR can generate parsers, lexers, and tree-parsers in either C++, Java, or Sather. ANTLR is currently written in Java.
PyBison is a sophisticated yet easy-to-use parser creation toolkit for Python that interfaces directly to Bison (yacc)-based parsers. It provides full LALR(1) grammar support, allowing for simple parsing tasks through to writing compilers for high-level languages. Parser code is automatically generated from rules within user-created Parser classes (written in Python), and then, compiled, yacc'ed and linked into a shared library, which is loaded into the running process. All this happens automatically. When the parser runs, it connects directly with the yyparse() routine, and takes event callbacks upon parse targets being reached.
This library provides an implementation of tables indexed by strings. The binary search is used for names of known length. It is also possible to search a table for names of unknown length, i.e. to parse a string using some table. Table elements can be of any private type. Key- insensitive tables are supported.
nyu is a combination of modern academic approaches to parsing formal grammars from PEGs and expression grammars that represents the new state of the art in parser generators. nyu grammars are written in a powerful language based on PEGs (parsing expression grammars) but with modifications to allow both the AST and the parser to be specified intuitively in a single grammar. nyu outputs parsers that take advantage of the chilon::parser meta-programming library for C++. The generated parsers are almost as concise and readable as the input grammars, yet perform as well as hand-written C code. nyu ASTs are built using tuples, variant types, and lists, and allow self referential parsers and AST nodes to be manipulated. Advanced features such as hashed containers and grammar inheritance are also possible and well tested. nyu is currently powerful enough to deal with complex grammars and bootstraps its own parser.