… ABNF Parser Generator
APG is organized into three separate directories plus an additional five directories for the five examples of APG usage. The three APG directories are:
As the name implies, is a library of utility functions. These are not necessary for the parser itself, but provide a convenient set of helper functions. These are mostly display functions, which need the C run-time I/O library, but also has a few basic file handling functions and a timer component used in the timing tests.
This is APG, the parser generator. It reads an SABNF grammar and generates a parser in the form of C or C++ source code.
The five examples of APG usage are:
This gives a simple example of setting up a C++ parser.
APG has proved a popular choice for parsing MEGACO messages (RFC 3525.) This is an example of how to set up a C++ parser for this grammar.
This is an in-depth study of using UDTs to significantly speed up the parsing process without altering the language of interest. The SIP grammar (RFC 3261) has been selected for this study because it is a substantial (300+ rule names) and commercially significant grammar.
This is an example of using an alphabet character width greater than 8 bits. This example parses UNICODE characters using their full 32-bit integer character codes (UTF-32).
For more information about APG, Version 6.3 see doc6.3.