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

The biscuit parser library

C++

2週間もかけた割にはMr.Digginsから気のない返事しかもらえない reStructuredTextの出力するファイルは、Code Projectにほぼそのままで投稿できる

Boost.Range

STLのコンテナの要件を緩めたConcept 日常書くコードへの影響の大きいライブラリ begin(),end()をユーザに書かせなくてよくなる istream_iteratorのような変わった使い方をユーザに要求しなくてよくなる リソースの管理をrangeにまかせることができる ソース…

Boost.Spirit風YARD

C++

標準XMLのEBNFをほぼ忠実に再現できた 再帰もそのまま書けてしまう ソース []#include[][] <iostream>[] []#include[][] <fstream>[] []#include[][] <string>[][]#include[][] "biscuit/biscuit.hpp"[][]namespace[] { []using[] []namespace[] []biscuit[];</string></fstream></iostream>

YARD (Yet Another Recursive Descent Parser)

C++

シンプルで、生成されるコードが小さく、コンパイルも早い。これが正解だ。 ただし、back-tracking on star operationsはない。 インターフェイスが独特のため、少し書き足す必要があると思われる。 よく考えるとBoost.SpiritもBoost.Xpressiveも解析器をsta…

Boost.Parameter

named_paramsからparameterに名前が変わったらしい BOOST_MPL_LIMIT_METAFUNCTION_ARITYに依存しなくなっている(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERSはコンパイラの負担が大きく問題を起こすことがある) 古いドキュメント→名前空間をparameterにして、key…

Boost.Xpressiveのメモ

困ったらepsilon >>をつける 再帰的なregexを使うときはスタックに負担をかけないようにkeepする numeric_castは切捨てを許さない (detail/sequence_stack.hpp, line 88; 1.5を2にでもする) ソース