タグ

compilerに関するnitoyonのブックマーク (7)

  • お手軽パーザー

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    nitoyon
    nitoyon 2009/01/24
    10分で書く50行の再帰下降 LL(1) 数式パーサー。左再帰や先読みにどう対処するか。
  • Flex 3 Compiler Design - Flex SDK - Confluence

    Diagrams Overall Flex Compiler Design MmxlDocument Containment Subcompilers The Flex compiler, which is often referred to as mxmlc, is a collection of subcompilers, used to create a SWF. The two main subcompilers are flex2.compiler.as3.Compiler, which compiles .as files, and flex2.compiler.mxml.Compiler, which compiles .mxml files. The flex2.compiler.abc.Compiler is used to extract type informat

    nitoyon
    nitoyon 2008/07/02
    mxmlc の設計。MXMLの変換方法なども解説。クラス図あり。
  • JavaScript で構文解析: Days on the Moon

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

    nitoyon
    nitoyon 2007/09/13
    パーサーネタはあとで読む…はず。
  • JavaScript で XPath の構文木を考えてみる。 - IT戦記

    またまた パーサーブームの続編です。 昨日は数式のパーサーを作って、帰り道にいろいろ考えたんですけど、普通の言語で考えると構文木って結構複雑になるんじゃないかなあって思いました。 で、横断歩道で明日 XPath の構文木を考えてみようと思ったわけです。 では、仕様と見比べながら XPath の構文木の構造を考えてみましょう。 仕様読むの大嫌いなんですけど、がんばります。 仕様のリンク xpath cover page - W3C まず、冒頭に The primary syntactic construct in XPath is the expression. An expression matches the production Expr. http://www.w3.org/TR/xpath#section-Introduction とあるので、 XPath 全体は Expr である

    JavaScript で XPath の構文木を考えてみる。 - IT戦記
    nitoyon
    nitoyon 2007/08/30
    自分もこの辺がわかってないので、苦労しながら作っていく様子を公開してくれるのは非常にありがたい。追いつけてないけど・・・。 /「仕様読むの大嫌いなんですけど」に親近感。
  • IT戦記 - JavaScript で数式パーサを書いてみた。

    背景 いままで、ちゃんとパーサというものを書いたことがなかったので勉強のためにアレコレ考えながらやってみようと思って、簡単な数式を木にするパーサを書いてみようと思ったのです>< 今回作るパーサの仕様 パースする数式の演算子は二項演算子 + - * / と単項演算子 + - だけ。 括弧とかは使わない。 演算の優先順位は * / のほうが + - より高い。つまり、 1 + 1 * 1 は 1 + (1 * 1) 単項演算子は二項演算子より優先順位が高い。つまり、 - 1 + 1 は (-1) + 1 で、作ってみた! ソースコード filter 関数とか使ってるので、 Firefox only です。 var parse = function(source) { var tokens = source.match(/[-+*/]|[^-+*/\s]+|\s+/g).filter(/^[^\

    IT戦記 - JavaScript で数式パーサを書いてみた。
    nitoyon
    nitoyon 2007/08/30
    正規表現で数式パーサー。このシリーズに期待!
  • 10分で書く字句解析器 - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記

    http://sakurai.s59.xrea.com/10min/10minlex.html なんか、やってみました。 後で見たら、最後失敗してて恥ずかしいです。 名前が、sakuraiなもんで。sakuraエディタ使ってみました。 正規表現使ってます。 字句解析って、flexをインストールしようとして失敗したり、手書きで長々書いてあって、 めんどくさくて大変だったりってのが多いように思うので、 めんどくさいっていうイメージを払拭したくてやってみました。 次回は10分で書く構文解析器をやろうと思います。

    10分で書く字句解析器 - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
    nitoyon
    nitoyon 2006/01/24
    正規表現で字句解析。
  • 10分で書く構文解析器 - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記

    10分で書く構文解析器をやってみました。 再帰下降法を使っています。 四則演算して結果を返します。 最初に、簡単なスタックのように使える文字読み込み関数pop(),push(),peek()をつくり、 その関数を利用して、再帰下降構文解析の関数expr,term,factを作成しています。 字句解析は、pop()とfact()関数内でやってる感じです。 時間が余った分、空白の処理を入れています。 htmlはありものを使ってるので、実質、作ってる時間は5,6分です。 ムービー http://sakurai.s59.xrea.com/10min/10minparse.html できあがったもの http://sakurai.s59.xrea.com/10min/parse.html 詳しいところは、id:tanakhさんの 10分で書ける、お手軽パーザーを見てください。 http://fxp.

    10分で書く構文解析器 - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
    nitoyon
    nitoyon 2006/01/24
    再帰下降法による構文解析。
  • 1