はじめにKompira では、ジョブフロー言語の構文解析に、PLY (Python Lex-Yacc) [1] を使用しています。PLY は Yacc/Lex という定番の構文字句解析ツールの Python による実装です。Python から利用できるパーサジェネレータは [2] のように数多くあるのですが、筆者自身が使いなれた Yacc/Lex ベースということと、Python ネイティブな実装ということで、PLY を選んでました。 今回は前から気になっていたパーサジェネレータである ANTLR [3] を使って、簡単な式言語の構文解析を実現してみようかと思います。ANTLR は、LL(*) [4] という強力なトップダウン解析手法にもとづいており、サンフランシスコ大学の Terence Parr 教授が中心となって開発しています。ちなみに Terence Parr 教授は「言語実装パタ