About the Book
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online. Pages: 26. Chapters: Yacc, Lex, Compiler-compiler, GNU bison, Accent, Comparison of parser generators, Flex lexical analyser, Compiler Description Language, GOLD, Quex, CookXml, TREE-META, ANTLR, JetPAG, Construct, Parboiled, SYNTAX, Spirit Parser Framework, Coco/R, S/SL programming language, JavaCC, Syntax Definition Formalism, LALR parser generator, Lemon Parser Generator, Ragel, Irony, META II, SableCC, Grammatica, Scannerless Boolean Parser, Berkeley Yacc, Happy, JLex. Excerpt: This is a list of notable lexer generators and parser generators for various language classes. flex (fast lexical analyzer generator) is a free software alternative to lex. It is frequently used with the free Bison parser generator. Unlike Bison, flex is not part of the GNU Project. Flex was written in C by Vern Paxson around 1987. He was translating a Ratfor generator, which had been led by Jef Poskanzer. A similar lexical scanner for C++ is flex++, which is included as part of the flex package. At the moment, flex supports generating code only for C and C++ (see flex++). The generated code does not depend on any runtime or external library except for a memory allocator (malloc or a user-supplied alternative) unless the input also depends on it. This can be useful in embedded and similar situations where traditional operating system or C runtime facilities may not be available. This is an example of a scanner which does not make use of Flex (written in C) for the instructional programming language PL/0. The symbols recognized are: '+', '-', '*', '/', '=', '(', ')', ', ', ';', '.', ' =', '', '>', '>='; numbers: 0-9; identifiers: a-zA-Z and keywords: begin, call, const, do, end, if, odd, procedure, then, var, while. External variables used: External routines called: External types: Scanning is started by calling init_scan, p...