12. 字句解析器、構文解析器生成器(ocamllex、 ocamlyacc)

12.1. Overview of ocamllex
12.2. Syntax of lexer definitions
12.3. Overview of ocamlyacc
12.4. Syntax of grammar definitions
12.5. Options
12.6. A complete example
12.7. Common errors

この章では ocamllex と ocamlyacc の解説をします。ocamllex は、正規表現の集合と、それに対応するセマンティクスから字句解析器を生成し、ocamlyacc は文法と、それに対応するセマンティクスから構文解析器を生成します。

このプログラム生成ツールは、C 言語環境で有名な lex と yacc ととてもよく似ています。この章は lex と yacc の知識があることを前提としています。ocamllex と ocamlyacc に与えるソースの文法や lex と yacc との主な相違点などは解説しますが、lex と yacc での字句解析器や構文解析器の基本的な書き方は解説しません。lex と yacc をよく知らない方は、''Compilers: principles, techniques, and tools''(Aho, Sethi and Ullman (Addison-Wesley, 1986)) や ''Lex & Yacc''(Levine, Mason and Brown (O'Reilly, 1992)) などを参照してください。