タグ

parserに関するhideokiのブックマーク (7)

  • KMyaccユーザーズガイド

    最後の項目「semantic valueの参照」について補足します。 kmyaccでは、アクション中のsemantic valueを、$$, $1, $2...の代わりに文法記号の名前で参照することができます(Cでは-nオプションの指定が必要)。 以下に例を示します。 foo: bar '+' baz { foo = bar + baz; } 上のアクションは、{ $$ = $1 + $3; }と同じです。 同じ文法記号が規則中に複数回現われる場合は、どの要素を指しているのかが曖昧なため、そのまま文法記号で参照するとエラーになってしまいます。 こういう場合には文法記号の前に「名前@」を前置することにより、その名前でsemantic valueを参照することができます。 result@expr: addendum@expr '+' addenda@expr { result = addend

  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

  • ANTLR

    What is ANTLR? ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees. Terence Parr is a tech lead at Google and until 2022 was a professor of data science /

  • Loading...

  • お手軽パーザー

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

  • 研究(用ソフトウェア)紹介: CIL - sumiiのブログ

    MinCamlや日経ITpro連載のためか、いろいろなところで「関数型言語の研究者」「OCamlの人」と言われて、それはそれで非常に光栄なのですが、僕やK・S研究室は別に「関数型言語やOCamlの研究」をしているわけではありません*1。むしろ、並行言語や命令型言語など、関数型言語以外の話のほうが多いです。たとえば、わかりやすそうなところでは「Fail-Safe CをJavaに変換」あるいは「Linuxカーネルのソースコード検証」なんてプロジェクトもやっています。 で、一般にC言語のプログラムをコンパイル/変換/解析/最適化等したかったら、まずはparseしないといけないわけですが、これが意外と面倒です。しかも、来の研究(コンパイル/変換/解析/最適化等)とはあまり関係のない苦労が必要とされます。それはそれで勉強になるのですが、そんな物理的・精神的:-)余裕がない場合は、CCuredの作者

    研究(用ソフトウェア)紹介: CIL - sumiiのブログ
  • 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 コンパイラを作る日記
  • 1