Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (6)

タグの絞り込みを解除

parserに関するaikeのブックマーク (9)

  • Haskell で parser を書くには (初心者編)

    Haskell で parser を書くには (初心者編) 勝手に Haskell Advent Calendar 2011 Haskell Advent Calendar 2011 にはエントリーできませんでしたけど、一人寂しく「勝手に Haskell Advent Calendar 2011」を開催して、わくわくクリスマスを待ちたいと思います。 目的: Parsec3 と attoparsec の基的使用法, Applicative スタイルを習得する 前置き: Haskell で parser を書くにはどうすればいいのでしょうか? 私は、これを勉強すべく情報源を探しましたが、一体どこからどう始めればいいのか分からず、非常に混乱しました。「この記事を読めば大体概要が全部分かる」という情報源が日語でも英語でも見つけられなかったからです。なので自分でまとめてみることにしました。 (私

    • HaskellとDSL - あどけない話

      LL Planets の「メタプログラミングの光と闇」で Haskell について話してきました。PerlPythonRuby が概ね内部 DSL を作る話だったのに対し、Haskell では外部DSLを内部に埋め込むという話をしました。短い時間で説明不足になった感があるので、この記事で二点ほど補足します。 Haskell では文法がうまく設計されており、コードを書けば自然とDSLっぽくなるので、わざわざ内部DSLなんて言わない。それよりもコンビネータという考え方を学ぶ方が新しい視野がひらけてよい。 Haskell ではパーサーを作るのが簡単。だから自分で言語を作るのも簡単。その言語を外部ファイルから読み込んでもいいし、HERE DOCUMENT のように内部に貼付けることもできる。 関数を二項演算子として扱う Haskell では関数をバッククォートで囲むと二項演算子になります。 i

      HaskellとDSL - あどけない話
      • 雑草ブログ HaskellでBrainfuckインタプリタ

        > Haskell Brainfuck の検索結果 約 56,600 件中 1 - 10 件目 (0.16 秒) …まあ気にしない。もう書いちゃったし。 BF的な仕様入力が無くなった場合はポインタの指す値を変更しないmod 256 処理系の仕様入出力はIntのリストで遅延評価 使い方interpretBF "コード" [入力...] → [出力...] [3] *Main> interpretBF ",.,.,." [1,2,3] [1,2,3] *Main> take 10 $ interpretBF "+[.+]" [1,2,3] [1,2,3,4,5,6,7,8,9,10] *Main> interpretBF "<<<" [1,2,3] [] *Main> interpretBF "<<<." [1,2,3] [*** Exception: Prelude.(!!): negati

        • Haskell で brainfuck - 言語ゲーム

          ふと思い立って Haskell で brainfuck を書いてみた。そんな事やってる人は沢山いると思うので、一つ制限をつけた。モナドは main 関数の中だけしか使わない。つまり、後は全部副作用なしでやる。 それから、大体の方針を立てた。brainfuck の文法はとても単純なので、もしかしてパーサすらいらないんじゃ無いかと思ったのだけど、ループがある関係上やっぱり最初に構文木を作ったほうがやりやすい。という事でオーソドックスに、ソースコード -> 構文木 -> 実行、と言う順序で進める事にした。 -- Parser data Command = Inc | Dec | Next | Prev | Put | Get | While [Command] deriving (Show, Eq) type Program = [Command] parse :: String -> Prog

          Haskell で brainfuck - 言語ゲーム
          • The BNF Converter

            Centre for LanguageTechnology Chalmers University ofTechnology and University ofGothenburg What is the BNF Converter? The BNF Converter is a compiler construction tool generating a compiler front-end from a Labelled BNF grammar.It is currently generating code for the target languages Haskell, Agda, C,C++,Java, and OCaml, as well as XML representations and Pygment syntax highlighters. Given a

            • ANTLRを使ってみる

              始める前に とりあえず、まずはANTLRとはどんなものか使ってみましょう。 ANTLR のページからダウンロードします。 今回は、現在(2006/07/18)の安定最新版である 2.7.6 を使うことにしました。 ANTLRのようなツールを使うときに、最低限知っておく必要のある事があります。 それは正規表現です。 これを知っていないと、正直ANTLRを使うのは厳しいです。 基的なところだけ知っていれば充分ですので、 まずは正規表現を学んでおきましょう。 簡単な例 ANTLRでは、一つのパーサを作成するのに Parser / Lexer を対で使います。 今回はAntlrのサイトに習って(パクって?)、数値演算式を解析するパーサを作成します。 まず、以下の内容をファイルに保存します。 expr.g class ExprParser extends Parser; expr: mexpr (

              • d.y.d.構文解析の話をしよう

                16:46 08/03/30 YZ1.DLL 0.30 リリース しました。 具体的には、ヘッダの格納ファイル数フィールドに実際より大きい値が入ってると変なとこ読もうとして落ちるバグ修正。GreenPad の修正は来週くらいには…。 Booooooost Boost 1.35.0 来てました。 Asio と Fusion と GIL の三枚看板がでかいですが、Bimap が地味に便利だ。 あと、mbさんのEgg のレビューが明日からでしょうか。(また スケジュール から消えてますが…Protoが入る前までロールバックしてる?) 他人事ながらドキドキ。 17:36 08/03/28 ケース 十年来の疑問なんですが、"case" に単独で対応する日語ってなんになるんですかね。 "case-insensitive" や "lowercase" の "case"。単に "case-insens

                • RaccでSchemeパーサを作る - 趣味的にっき

                  3/2(日)の生駒読書会#2に向けて、Schemeのパーサを準備しておこうと思って作ってみました。なんちゃってSchemeで遊ぶくらいなので、機能はまだまだ足りません。R5RSと見比べると足りないのはだいたいこんな感じかな。 ペア。 文字。 n進数。小数。複素数。 quote。 ベクタ。 マクロ関係。 文字列の中の"。 ファイル: list_parser.y # Local Variables: # mode:ruby # compile-command: "racc -o list_parser.rb list_parser.y" # End: class ListParser rule atoms : | atom atoms { result = List.new(*val) } atom : IDENT | BOOLEAN | NUMBER | STRING | list lis

                  RaccでSchemeパーサを作る - 趣味的にっき
                  • Ruby言語パーサのruby_parser 1.0.0が初リリース:Rubyで100%記述 - builder by ZDNet Japan

                    自社利用の知見・経験を顧客に提供 コンテナ活用を推進する日立製作所 VMware Tanzuを利用したモダナイズを伝授 オープンソース活用はあたりまえ! そんな今だからこそ改めて考える 企業ITにおけるOSS活用のメリットとリスク 特集:セキュリティトレンド-秋- つながる世界で問われる対応 サプライチェーンセキュリティを考える さあ、その想いをカタチにしよう。Google Cloud が企業の未来に向けた生産性 向上とコラボレーション実現のヒントを解説 サーバースペシャリストへの道PCサポートとサーバ管理の共通項 ひとり情シスのためのスキル向上のコツ ビジネスの推進には必須! ZDNet×マイクロソフトが贈る特別企画 今、必要な戦略的セキュリティとガバナンス EDRトップランナー対談:後編セキュリティ戦略を転換せざる得ない背景と EDRのような手法が必要な理由に迫るIT部門のDX

                    • 残りのブックマークを読み込んでいます1

                    お知らせ

                    公式Twitter

                    • @HatenaBookmark

                      リリース、障害情報などのサービスのお知らせ

                    • @hatebu

                      最新の人気エントリーの配信

                    処理を実行中です

                    キーボードショートカット一覧

                    j次のブックマーク

                    k前のブックマーク

                    lあとで読む

                    eコメント一覧を開く

                    oページを開く

                    はてなブックマーク

                    公式Twitter

                    はてなのサービス

                    • App Storeからダウンロード
                    • Google Playで手に入れよう
                    Copyright © 2005-2025Hatena. All Rights Reserved.
                    設定を変更しましたx

                    [8]ページ先頭

                    ©2009-2025 Movatter.jp