突然Parsecを思い出す

パーサジェネレータって,

  • パーサジェネレータの持つ言語(文法定義)
  • JavaとかCとかの一般的な言語

という2重の言語が必要だなー,と思っていたら,これがあったことを思い出す.Parsec はパーサジェネレータじゃないから確かに単一の言語(Haskell)で書ける.

じゃあParsecで思い通りのコンパイラが書けるのか...というとまた違うきがする.ちょっと実際にParsecを使いながら考えていこう