タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

PEGに関するn4_tのブックマーク (2)

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

    調子に乗ってRubyでもPEGパーザコンビネータ書いてみた。Rubyは素人(コード自動生成とかにしか使ってない)なので、もうちょっとこうした方がいいよ、とか、こうした方がRubyっぽいよ、とかあったら教えてください。 module PEGParserCombinator class Parser def initialize(&parser) @parser = parser end def [](input) @parser[input] end alias parse [] def /(that) Parser.new{|input| self[input] || that[input] } end def ^(that) Parser.new{|input| (r1 = self[input]) && (r2 = that[r1[1]]) && [[r1[0], r2[0]], r2

    Rubyで作るPEGパーザコンビネータ - kmizuの日記
    n4_t
    n4_t 2009/05/07
  • 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の日記
    n4_t
    n4_t 2009/03/01
  • 1
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy