タグ

parserに関するkaz_hiramatsuのブックマーク (3)

  • Cで作るPEGパーザコンビネータ - kmizuの日記

    これまでPEGパーザコンビネータ作ってきた言語は、全て、レキシカルスコープの無名関数やそれに類似の機能を持っていたため、容易に作ることができましたが、C言語には無名関数のような機能が無いため、ちょっと頭をひねりました。とりあえず作ることを優先させたので、メモリ管理とか、ライブラリとしての再利用しやすいようにヘッダファイルに宣言を適切に分離するとか一切考慮してません。たとえば、動的なメモリ確保は、mallocした後、そのまま放置で、freeしてません。あと、C言語は普段使わないので、C言語バリバリに使っている方からすると、メモリ管理とか以外の基的なところで、ツッコミどころ満載な気もするので、その辺も指摘していただければと思います。 #include <stdio.h> #include <string.h> #include <stdlib.h> #define RULE(name) Pa

    Cで作るPEGパーザコンビネータ - kmizuの日記
  • Top Down Operator Precedence

    Douglas Crockford 2007-02-21 This is chapter 9 of Beautiful Code. Introduction Vaughan Pratt presented "Top Down Operator Precedence" at the first annual Principles of Programming Languages Symposium in Boston in 1973. In the paper Pratt described a parsing technique that combines the best properties of Recursive Descent and Floyd's Operator Precedence. It is easy to use. It feels a lot like Recur

  • inforno :: Javascriptでパーサジェネレータを書いてみた

    ちょっと前にjavascriptで構文解析とかがはやった気がするので、javascriptのリハビリがてらかいてみた。 ググってみると Jsparsec - JavaScriptパーザコンビネータライブラリ HaskellのMonadをJavaScriptで実装するとしたら あたりがあるのだが、まぁ勉強ということで。javascriptらしく書いてみようかと。 ということで、モナドがどーたらとか難しい話はまぁおいておいて、簡単に値がとりだせますよ、という見栄え重視で作ってみた。基的な機能しかない。けど拡張するのは簡単。せめて相互再帰くらいは実装したほうがよかったかな。まぁ、こんなの真剣に使う人もいないと思うので、要望があればってことで。ちなみに依存するライブラリはありません。 ダウンロード : Inforno.Parsec たとえばこんな感じにCSVのパーサが定義できる。withを使って

  • 1