はじめに もくじ D言語で構文解析器をつくる(1) パーサー・コンビネーター編 (本記事) D言語で構文解析器をつくる(2) セマンティック・アクション編 D言語で構文解析器をつくる(3) アブストラクト・シンタックス・クリスマスツリー編 今回つくるもの この記事では、簡単なPEGパーサー・コンビネーターを実装します。 こちらのデモのように動かせる物が出来上がります。 以下は、3桁ごとにカンマで区切られている数字(1,000とか1,000,000とか)のチェックを行う簡単なユニットテストです。 unittest { // 1以上の数字 alias rng!('1', '9') n1; // 0以上の数字 alias rng!('0', '9') n0; // カンマ区切り数字の先頭。最初の1桁は[1, 9]で、カンマの出てこない最初の3桁まで alias seq!(n1, opt!n0,