タグ

parserに関するjjzakのブックマーク (81)

  • GitHub - js-choi/fnparse: [deprecated] A library for creating functional parsers in Clojure.

    This library is deprecated. You’re free to fork it as per the CPL, but don’t use it for production. For general-purpose parsing in Clojure, use an alternative, living library such as: clojure.spec by Rich Hickey et al. Instaparse by Mark Engelberg pex by Ghadi Shayban sequex by Jonathan Claggett squarepeg by Eric Normand Long ago, while Clojure was still young, I wrote FnParse as an exercise in mo

    GitHub - js-choi/fnparse: [deprecated] A library for creating functional parsers in Clojure.
  • Let's Build a Compiler

    Let's Build a Compiler, by Jack Crenshaw This fifteen-part series, written from 1988 to 1995, is a non-technical introduction to compiler construction. You can read the parts on-line or download them in a ZIP file. Read the tutorial on-line Part 1: INTRODUCTION Part 2: EXPRESSION PARSING Part 3: MORE EXPRESSIONS Part 4 INTERPRETERS Part 5: CONTROL CONSTRUCTS Part 6: BOOLEAN EXPRESSIONS Part 7: LEX

    jjzak
    jjzak 2010/08/24
    Pascalの部分セットのコンパイラをForth上に実験的に構築
  • 正規表現と文脈自由文法の話 - val it : α → α = fun

    http://d.hatena.ne.jp/wasisan/20090321/p1 まず一言。E-Mailアドレスにのみ正しくマッチする正規表現というものは存在しません。それから、RFCではこういうのはたいていBNFで記載されているので、文脈自由文法が使えるならかなりそのまんまで書けるので非常に楽です。 一方で、「正規表現来の目的=トークンの記述」というのには首をかしげます。grep使ったことがないんでしょうか。メールアドレスを正規表現でマッチさせるというシチュエーションはいろいろ考えられますが、MTAやちゃんとした MUAを実装するのでもない限り、よくある用途は「メールアドレスフィールドに突っ込まれたユーザの入力がメールアドレスっぽいかどうか検証する」といった程度のものであり、すなわちhttp://hal456.net/qdmail/validationで書かれているような程度のことで

  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
  • nokogiri Documentation

    nokogiri.rubyforge.org/ github.com/tenderlove/nokogiri/wikis github.com/tenderlove/nokogiri/tree/master rubyforge.org/mailman/listinfo/nokogiri-talk nokogiri.lighthouseapp.com/projects/19607-nokogiri/overview DESCRIPTION: Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. FEATURES: XPath support for document searching CSS3 selector support for document searching XML/HTML builder Drop in replace

  • 正規表現エンジンを作ろう (3)

    正規表現は、特に文字列操作が中心となるWEB分野におけるプログラミングにおいて、なくてはならない重要な機能です。稿では正規表現を解釈するエンジンを実際に実装し、正規表現エンジンがどのように動いているのかを解説します。第3回は、実装するDFAエンジンが扱う文法を解釈するコンパイラを作成します。 はじめに こんにちは。hirataraです。 前回はDFAエンジンの仕様を明らかにし、DFAとNFAをPythonで実装しました。今回は、実装するDFAエンジンが扱う文法を解釈するコンパイラを作成します。 対象読者 正規表現をもっと知りたい方 情報科学分野に興味がある方 正規表現エンジンを実装する必要がある方 正規表現のコンパイル 前回、正規表現の仕様の中で正規表現の文法を定めました。これから、この文法を解釈できるコンパイラを作成します。コンパイラの仕事は、文字列を解釈して計算機が扱いやすいデータ方

    正規表現エンジンを作ろう (3)
  • compiler - Vidar Hokstad V2.0 Rubyでコンパイラを書くチュートリアル

    (To follow my compiler related posts, either subscribe to my main RSS feed, or the compiler specific one ) Back in March 2008 I started publishing a series on how to write a compiler in Ruby, bottom up, that is, starting with the code generator and working my way up instead of the more traditional approach of writing the parser first. Here are the parts I've published on my blog so far. (The bits

    jjzak
    jjzak 2008/12/22
    Rubyでコンパイラを書くチュートリアル
  • strfriend

    jokergaming สล็อตออนไลน์ที่มาแรงที่สุด เครดิตฟรี jokergaming สล็อตออนไลน์ที่มาแรงที่สุด เครดิตฟรี 100 ไม่ต้องฝาก ในวันนี้ทางเว็บไซต์ของเรา จะขอเสนอข้อมูล เกมสล็อตฟรีเครดิต 100 แบบไม่ต้องฝาก แบบไม่ต้องแชร์ เชื่อเลยว่า มันคือหนึ่งในคำถาม ที่นักพนันมือใหม่บนัสเครดิตฟรี จากเว็บตรงนั้น สามารถถอนได้จริง ๆ แล้ว โดยเรา ทำการสมัครสมาชิกกับเว็บ และเป็นการเปิดโอกาส ให้กับผู้เล่นใหม่ ๆ ได้เข้ามาทดลองเล่นเกม เ

  • inforno :: tags :: scala

    Scalaでスタック指向言語をサクッと実装する May 17, 2008 日語プログラミング言語Scala Mar 4, 2008 Python,Rubyの言語内DSL構築力:PythonでRakeをまねる場合を例に Feb 21, 2008 Scalaで無限リスト:Haskellライクに Feb 9, 2008 基礎を終えた人のScalaミニtips Feb 3, 2008 Scalaでパーサコンビネータ Jul 30, 2007

    jjzak
    jjzak 2008/08/24
    Scalaでスタック指向言語をサクッと実装する
  • Language.C を使ってみる with Data.Generics - らくがきえんじん

    Language.CはHaskell用の、C言語のソースコードを構文解析するライブラリ。 構文木はHaskellのデータとして操作可能で、これのおかげでC言語のコードを色々と操作できる。意味解析に役立ついくつかの補助関数も定義されているようだ(よく調べてない)。 やったこと、動機 JHC (Haskellのコンパイラ;ISO C互換のコードを吐く)は C99のコードを吐くようだ ツールの制約でgcc 2.95(19991024)しか手元にない。 gcc 2.95はC89しか受け付けないようだ jhc が吐くコードを gcc 2.95 でコンパイルできるよう自動変換したい そこで Haskell用の Cパーザである Language.C を使って、JHCが吐くコードを gcc 2.95でコンパイルできるように変換する。未完。 C89では 変数宣言が ブロックの頭以外に来たらエラー。全ての変数

    Language.C を使ってみる with Data.Generics - らくがきえんじん
    jjzak
    jjzak 2008/08/21
    Language.CはHaskell用の、C言語のソースコードを構文解析するライブラリ。
  • ANSI C grammar (Lex)

    ANSI C grammar, Lex specification (This lex file is accompanied by a matching yacc file.) In 1985, Jeff Lee published this Lex specification together with a Yacc grammar for the April 30, 1985 ANSI C draft. Tom Stockfisch reposted both to net.sources in 1987; that original, as mentioned in the answer to question 17.25 of the comp.lang.c FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/a

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • neilvandyke.org - HtmlPrag

    HtmlPrag provides permissive HTML parsing and emitting capability to Scheme programs. The parser is useful for software agent extraction of information from Web pages, for programmatically transforming HTML files, and for implementing interactive Web browsers. HtmlPrag emits "SHTML," which is an encoding of HTML in SXML, so that conventional HTML may be processed with XML tools such as SXPath. Lik

    jjzak
    jjzak 2008/03/21
    schemeのhtmlパーサ
  • 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

    jjzak
    jjzak 2008/03/13
    構文解析の話をしよう
  • https://www.cs.vu.nl/~dick/PT2Ed.html

  • ActionScriptのyaccを作ったよ - yukobaのブログ

    2007/3/3追記:http://www.hakkaku.net/articles/20080226-154 記事になっている!びっくり! http://www005.upp.so-net.ne.jp/kmori/kmyacc/ ですが、このたび、 ActionScript3 対応 Python 版でのデバッグモード対応 PHP 版のちょっとだけバグ取り をやりました。 尾藤さんの PHPのyaccを作ったよ - ベイエリア情報局 と来栖川電算の Kurusugawa | Kurusugawa Computer Inc. を元にしています。 お二人、大変ありがとうございました。m(_ _)m m(_ _)m m(_ _)m ファイルは http://accelart.jp/blog/kmyacc/kmyacc-4.1.4.zip です。クジラ飛行机さんがバグを修正してくださいました。コメ

  • Javaでコンパイラの基礎を理解する

    そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です

  • SableCC

    SableCCはJavaベースのCompiler Compilerです。 URLはhttp://www.sablecc.org/です。 コンパイラコンパイラは文法構造の定義をもとにソースコードを 解析するコードを生成するものです。Javaでは他にJavaCCなどがあります。 SableCCは以下のような点がJavaCCと違います。 Unicodeベース: Readerを使うことにより、Javaのchar単位で解析している LALR(1) AST(abstract syntax tree)の生成 ASTへのVisitorによる走査: VisitorインタフェースAnalysis.javaを派生するため 文法ファイル中にJavaコードは埋めこまない SableCCは「文法定義ファイル」を読みこんで、実際にその文法で書かれた データを解析するためのJavaソースを生成します。 それらの生成Jav

    jjzak
    jjzak 2008/02/06
    SableCCはJavaベースのCompiler Compiler
  • オフサイドルールの処理 - soutaroブログ

    予習編.たまーに,YAMLのパーサとか欲しくなるんだけど,インデントの処理をどうやったら良いのかよくわからなくなって困っていたんだけど,勉強になった. Haskell 98 Syntaxにこと細かに書いてあるので,適当に実装してみた. http://svn.soutaro.com/has/tags/offside-rulesにありますので,適当にチェックアウトして,ocaml-3.10とかfindlibとかextlibとかインストールしたうえでmakeしたらできます.標準入力からHaskellプログラムを読み込んで,オフサイドルールを処理したやつ,つまり適当に{}とか;とか追加したトークン列を出力します. let fac3 0 = 1 fac3 n | n > 0 = n * fac (n-1) みたいのが, { let { fac3 0 = 1; fac3 n | n > 0 = n *

    オフサイドルールの処理 - soutaroブログ
    jjzak
    jjzak 2008/01/26
    OCaml での Haskellオフサイドルールの処理
  • JavaScript で構文解析: Days on the Moon

    C++ の特徴のひとつである演算子オーバーロード、その粋を極めたのが Boost Lambda (無名関数) と Boost Spirit (構文解析) ではないかと思っています。JavaScript では無名関数が使えるので Lambda に関しては間に合っているとも言えますが、Spirit はそうも行きません。JavaScript 2 で演算子オーバーロードがサポートされるのならチャレンジしてみようかななどと思ってそれきりになっていました。 しかし、一部でパーサブームが起こっているというのを受け、Perl 6 Rules をつらつらと眺めているうち、正規表現のメタ文字を使えば文法定義をきれいに書けるのではと思い至りました。そこで実際に JavaScript でパーサジェネレータを作り、Spirit にあやかって Gin (ジン) と名づけてみました。 文法定義 正規表現リテラルを使うこ