パーサでパターンを検知したときは普通同時にアクションを伴う。Parsec ではアクションは do 記法の中に記述する。
Text.ParserCombinators.Parsec> parseTest (do {string "abc"; return "hello, there"}) "abcdefg" "hello, there" Text.ParserCombinators.Parsec> parseTest (do {string "abc"; return "hello, there"}) "bacdefg" parse error at (line 1, column 1): unexpected "b" expecting "abc" これで、プライマリーのパーサ関数(char, letter, digit, string など)、プライマリーのパーサ関数を組み合わせる関数または演算子(do, <|>)、パーサ関数を文字列に適用する parser 関数、そして、パターンがマッチしたときのアクションの記述という4種類の道具が揃った。 入力列からパーサでパターンを検出し、マッチしたときはアクションを起こすというのがパーサの役目だから、Parsec の基本的な骨組みは分かった気がする。
by tnomura9
| 2009-09-29 16:08
| Haskell
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||