タグ

構文解析に関するNagiseのブックマーク (7)

  • 「Metal」 based on Parsing Expression Grammar - 古橋貞之の日記

    Parsing Expression Grammar (PEG)をベースとした構文解析器を生成するパーサジェネレータMetalを作りました。Rubyで書かれており、Rubyのコードを生成します。 Metalの多くはOMeta: an Object-Oriented Language for Pattern MatchingをRubyに移植したものです。 Metalの特徴: Rubyでアクションが書ける オブジェクト指向(継承、Mix-in、委譲、オーバーライド、super) PEGの特徴はそのまま 曖昧さが無い 左再帰が書けない(いまのところ) メモ化する ソースコードはCodeRepos:/lang/ruby/metalにあるので、ガツガツいじれます。 使い方 Ruby gemsでインストールできます。 $ gem install metal 文法定義ファイルを書いて、metalコマンド

    「Metal」 based on Parsing Expression Grammar - 古橋貞之の日記
  • Java 暗号化拡張機能 JDK5.0

    Nagise
    Nagise 2008/10/31
    抽象構文木を作れるよ
  • 標準/拡張 Java 抽象構文木フォーマット

    「標準 Java 抽象構文木」(standard Java AST)と 「拡張 Java 抽象構文木」(extended Java AST)とは? 抽象構文木を表現するクラス Tree は、非常に汎用性が高いため、 例えば次のような無意味なものまで表現できてしまいます。 (foo (literalTree xyz "123") (bar (id X) (baz) (id "a b c"))) しかし、実際に Java のソースコードを構文解析して作られる抽象構文木は、 非常に制限されたものになります。 例えば、 :class という tag を持った tree の subtree の個数は、必ず6です。 また、その0番目の subtree の tag は :modifiers 、 3番目の subtree は :extends 、といったふうに、 subtree の種類が場所によって決まっ

  • (別添2)

    統合開発環境 Eclipse のスクリプト言語用ライブラリの開発 ―Eclipse 上の作業を自動化するために― 1.背景 近年、Java 開発者を中心に、統合開発環境 Eclipse が急速に普及してきている。Eclipse は、プラグイン機構によって自分自身を拡張できることを特徴とする柔軟な開発環境である。 Eclipse のユーザは、Eclipse に足りない機能があれば、それをプラグインとして開発するこ とで、Eclipse の機能を拡張することができる。プラグイン機構による拡張性は非常に高く、 Eclipse に標準で付属する Java 開発環境である JDT(図 1)すら Eclipse のプラグインとして 提供されている程である。また、サードパーティによって多数のプラグインが開発されており、 その数は 1000 を超える。 しかし、Eclipse のプラグインを開発するには、

  • Javaプログラムトレースツールの開発

    明治大学理工学部情報科学科 計算理論研究室 小幡公歴 概要 学科では情報技術を利用した学習、MAXプロジェクトに取り組んでいます。 MAXプロジェクトでは主にプログラミングの学習に力を入れています。 その一環として、Javaプログラムをコンピュータ上でのトレースを可能にするために、Javaの初学者を対象とした、トレースツールの開発を行いました。 トレースツールは、表示されたソースコードとそのプログラムの実行時の情報を操作してプログラムのトレースを行うためのツールです。 表示する情報は、変数の情報やメソッドの呼び出し関係などトレースを行うために有用な情報です。 ここでは開発の際に利用した技術の紹介や、このツールの開発を通して見えてきた課題などをまとめました。 なお2007年1月現在も開発を行っており、完成に向けて実装を続けています。 目次 背景と目的 開発 考察と課題 参考資料 背景と目的

    Nagise
    Nagise 2008/10/15
    JDIとJava DOM/ASTを用いてトレースツールを作成。
  • ブログなんだよもん - 数式パーサの実装の仕方

  • 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

    Nagise
    Nagise 2008/03/05
    これは参考になる
  • 1