SPindent (Server Page Indenter) is a JSP/PHP structural validator and indenter. It performs structural compatibility check of inner HTML generated from "parallel" branches of process flow statements such as if/else. It allows for those HTML branches to have different entry and exit HTML stack points, as far as the branches are compatible. This allows for verification and proper indentation of handy workarounds, as well as rusty pyramids. It is based on MixedCC (Mixed Compiler Compiler).
Gentle is the first compiler construction system that handles the full spectrum from analysis over transformation (AST) to (cost-based) synthesis. Instead of confronting the user with several special purpose languages, Gentle provides a uniform notation for all tasks. It is based on recursive definition and structural induction: the underlying paradigms of virtually all tasks of translation. Rules may be interpreted as grammar rules (lex/yacc), as logical statements, or in a procedural way. Members of a rule may have parameters. This results in attributed grammars.
Memphis is a C/C++ precompiler for compiler writers and other programmers having to manipulate symbolic data. It is well suited for the definition of abstract syntax trees (AST) and the implementation of tree walkers. The Tool extends C/C++ with algebraic types and pattern matching that are known from modern functional programming languages (SML and Haskell).
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.