2017-10-30から1日間の記事一覧

基本的なパーサー

プログラミングHaskellより。 ここで、他のパーサーを構築するのに利用する基本的なパーサー三つを定義しよう。 ちょっと本の表記から変えます。 returnが予約語なので、メソッド名をreturn -> succeedにします。 String => List[Char]への変換は明示的に行…

パーサーの型

プログラミングHaskellより。 でもScalaで書いてみます。 適切な構文木の型Treeが与えられたとすると、パーサーはString -> Treeを持つ関数として表現できる。 type Parser = String => Tree しかし、一般的にはパーサーがすべての文字列を使い切るとは限ら…

パーサーとは (1)

プログラミングHaskellより。 パーサーとは、文字列を取り、文字列の文法構造を表現する曖昧さのない構文木を返すプログラムである。 曖昧さをなくすってのが大事なんだろう。 たとえば、文字列 "2 * 3 + 4"が与えられたとき、数式のパーサーは以下のような…