Eyes, JAPAN Blog > Codelogyの更新

Codelogyの更新

mima

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

Codelogyに、新しい記事を追加しました。
http://codelogy.org/?p=662


今回の記事は、D言語で書かれたパーサジェネレータであるところのctpgの、演算子の紹介です。
先読み系の演算子を紹介しています。
PEGにはあるけれど、CFGにはない機能なので、慣れない方が多いかもしれません。
コード:

import ctpg, std.array, std.stdio;
mixin(generateParsers(q{
    string strLit = "\"" (^"\"" parseAnyChar)* "\"" >> join;
}

void main(){
    q{"Hello, world!"}.parse!strLit().value.writeln();
    q{"表が怖い噂のソフト"}.parse!strLit().value.writeln();
}

結果:

Hello, world!
表が怖い噂のソフト

NOT述語である「^」を使っています。
それなりに回りくどいHello worldですね・・・
記事の中では、それらについて詳しく解説しています。
興味がありましたら、ぜひ見てみて下さい。


余談になりますが、D言語 Advent Calendarという企画が進行中です。
ハードコアな記事がいくつかありますね、ガチD言語er恐るべし・・・

担当:美馬(コンパイル時に動作するパーサが作れて、とても楽しい)

  • このエントリーをはてなブックマークに追加

Comments are closed.