2012-06-01から1ヶ月間の記事一覧

のゼロ元オブジェクトを作ってみた

(use gauche.collection) (use gauche.mop.singleton) (define-class <zero-collection-meta> (<singleton-meta>) ()) (define-class <zero-collection> (<collection>) () :metaclass <zero-collection-meta>) (define-method call-with-iterator ((class <zero-collection>) proc :key start) (proc (^ () #t) (^ () (err…</zero-collection></zero-collection-meta></collection></zero-collection></singleton-meta></zero-collection-meta>

R5RSの数値リテラルっぽいものをGaucheのparser.pegでパーズした(2)

前回から虚部の i の代わりに!も使えるようになったのとr進数(r>1)が使えるようになった.あと $try が足りない所があったので足したり.最早,R5RSの数値リテラルっぽいものではなくなってきている. 前回の36進数の虚部が汚いという問題.コメントも頂いた…

R5RSの数値リテラルっぽいものをGaucheのparser.pegでパーズした

R5RSの数値リテラルのサブセットを拡張したもののパーザをparser.pegで書いた.具体的には小文字しか使えないのと 123### を削って小数を10進以外でも書けるようにした感じ.あと36進数と指数マーカに^を追加. parser.pegはundocumentedでよく分からないの…