wvogel00のために、昔書いたParsecを使ったコードを載せてみます。コメントに書いてあるのはコードに直す前のEBNFです。 import Text.ParserCombinators.Parsec run :: Show a => Parser a -> String -> IO () run p input = case (parse p "" input) of Left err -> do putStr "parse error at " print err Right x -> print x --expr = factor ('+' factor | '-' factor)* expr :: Parser Float expr = do l <- factor rs <- many ((do char '+' n <- factor return $ (+) n ) <|
お台場のTOKYO CULTURE CULTUREで開かれたHaskellナイトというイベントで、ライトニングトーク「Haskellゴング」に出てでしゃべってきた。 Parsec 3活用事例: Keepalived構文チェッカ (Haskell Gong 2009)View more documents from ma0e. ソースコードはgithubで。 http://github.com/maoe/shiritori http://github.com/maoe/text-keepalived Parsec 3からモナド変換子の実装が入ったことで、パーザ内部でI/Oすることができるようになったため、include文のパーズが簡単になったというお話。text-keepalivedの方は仕事で使っています。アルバイトも募集しています。 Parsec 2に関する補足 id:kazu-yama
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く