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.
Accent is a compiler compiler that does not rely on specific subclasses of context-free grammars and that can be used like Yacc. It also cooperates with Lex. Accent supports inherited and synthesized attributes. It allows you to write your grammar in the Extended-Backus-Naur-Form. Semantic actions can be inserted anywhere; there are no restrictions caused by the parser implementation. Accent even allows ambiguous grammars with much less effort than with traditional LALR or LL compiler compilers. An annotation framework has been developed to resolve ambiguities. It is on the abstract level of grammars and does not reflect the parsing algorithm. Moreover, this calculus is complete in the sense that it can handle each ambiguity in any grammar.
'App' is a preprocessor for C++ that accepts as input arbitrary C++ code that may contain embedded constructs for specifying algebraic data types and associated pattern matching operations, and produces as output the same code with all such constructs translated to normal C++. What app essentially does is provide for C++ pretty much the same capabilities that functional languages have regarding algebraic types. 'Applib' is the associated runtime library that supports the core run time requirements of the translated code, and which provides additional utilities (applib is covered by the LGPL).
AutoGen is a tool designed for generating program files that contain repetitive text with varied substitutions. Its goal is to simplify the maintenance of programs that contain large amounts of repetitious text. This is especially valuable if there are several blocks of such text that must be kept synchronized. Output is specified with a Scheme-enhanced output template. Input, if required by your template, may come from AutoGen definitions, CGI data, or XML files.
AutoOpts is an integrated part of AutoGen. Based on a very simple option description file, it will process configuration files, environment variables, command line options, text strings passed by client programs, and will make the results easily accessible to the client program. It will also produce a man page and the info-doc invoking section automatically.
Aargh is a code generator written in C++. Based on specifications defined in an XML file, it generates C or C++ code to parse a command line, using the getopt() facility available in Unix, Linux, and similar environments. It supports command line options with integer arguments, string arguments, and no arguments. It optionally applies range tests to validate the option arguments, or calls a user-defined validation function. The generated code is commented and carefully indented for readability.
NFSv4 specifies that the RPC calls be batched into a "compound" call. There is no support for this in RPCGEN. By rearranging the ONC IDL for NFSv4 into AutoGen definitions, these templates will emit the original IDL *plus* all the code to package, send, distribute, collect, return, and dispatch the results. The distributed program author merely needs to call and supply server procedures for the routines specified in the IDL. Templates for these calls and service routines is provided, too. The NFSv4 definitions are included.