実績紹介
2012/12/14
Codelogyの更新
mima
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恐るべし・・・
担当:美馬(コンパイル時に動作するパーサが作れて、とても楽しい)