2013-01-01から1年間の記事一覧

Boost.Asio + Boost.Spirit の組み合わせTips

どうも、ひさしぶりです。Boost.Asioでデータを受信して、Boost.Spiritでデータを取り出すためのTipsをちょこちょこ書きます。 はじめに Boost.Asioは、Boost C++ Libraryの中の非同期な通信や入出力を担当するライブラリーです。 Boost.Spiritはテキストを…

Flexでreentrantなlexerを作ってみた

作ってみた。 https://github.com/coiled-coil/flex-example/blob/master/lexer.l %{ #include <string.h> %} %option noyywrap reentrant stack nounput %x MODE_A MODE_B %{ enum { TOK_1 = 10, TOK_2 = 20, TOK_3 = 30, }; %} %% . printf("INITIAL: %s\n", yytext)</string.h>…

Boost.Build(bjam)で独自拡張子を対応する方法

Bost.Buildの使い方メモです。 よく読めば、公式に書いてあることを簡単に触れているだけですので、 すでにご存知の方はスルーしてください。 コードジェネレーターのような特殊なツールを使いたいときどうすればいいのか。 例として、「*.l」をflexでコンパ…

ApacheのRewriteRuleとCustomLogを組み合わせる方法

お久しぶりです。 今日はお休みです。 風が強いですね。 久しぶりに子ネタを。 RewriteRuleを使うと環境変数への値の設定が可能です。 RewriteRule ^item/id/([0-9]+) - [E=id:$1] LogFormatを設定することで環境変数をログに出力可能です。 LogFormat "%t, …

autoconfを使って単体テストにリモートのサーバー名など環境依存な情報を埋め込む

どうもです。 お久しぶりです。 サーバーと通信する単体テストを書いてるときに、 リモートのサーバー名をどうやって埋め込むか悩んだことはありませんか? 共通ファイルを作ってインクルードするのが一般的だと思いますが、 共通処理が複雑になってテスト自…