2009-10-01から1ヶ月間の記事一覧

checkターゲットを利用する

本当は先にテストを用意するんかな。とりあえずは UnitTest の話ではなく、実行ファイルのテスト。ずっと Makefile は手書き派だったので、こんな感じで書いてた。 test: $(TARGET) $(TARGET) --verbose -o testout testinで > make testまあ、単純。autotol…

AC_CHECK_DEFINE

久々にソースを VC でコンパイルするとエラーががが。PATH_MAX は POSIX 準拠なんだけれども、UNIXサブシステムを有効にしないと VC ではコンパイルすら通らないことに。まあ、PATH_MAX を使うことの是非はおいておいてorz。autotools の考え方は機能ベース…

configure.acに自前のライブラリを追加する続き

どうやら解釈が間違ってたみたいや。ローカルなマクロの処理は2個あって、一つは acinclude.m4 に書く方法。もう一つは m4/ ディレクトリを使ってその中にファイルを置いておく方法。 後者でやってみる m4 ディレクトリを作ってファイルを置く。xxx.m4 とで…

configure.acに自前のライブラリを追加する

google先生に聞いてみても今一ピンとこなかったので書いてみた。 configure.ac編集 AC_ARG_WITH([xxx], AC_HELP_STRING([--with-xxx@<:@=PATH@:>@], [PATH is path to 'xxx']), [WITH_XXX=$withval], [WITH_XXX=yes]) xxxって自前のライブラリを追加する。必須ライブラ</:@=path@:>…

リエントラントな字句/構文解析機を作る修正

C++で作るのときにサンプル見てて、あー、そうだ、YY_DECL使うんか、と。 #ifndef YY_DECL #define YY_DECL int yylex(YYSTYPE* yylval, void* yyscanner) #endif /* YY_DECL */ これでええがなorz。 yyset_extra を使わんでもええがな。大嘘こいてましたo…

flex/bisonを使うときのバッドノウハウ

autotools 自体がそいういのの固まりだっちゅうのはおいておいて。ylwrapが、flex の出力ファイル名が lex.yy.c だと思い込んでるので、lexer.ll としたときに途中でエラーになりやがる AM_LFLAGS = -olex.yy.c で、出力ファイル名を標準に戻す。C++のパーサ…

c++な構文解析機超訳

超訳なので、間違いがあるかもしれませんの。 10.1 C++パーサー 10.1.1 C++ Bisonインターフェイス LALRパーサーを c++ で作るときは スケルトンディレクティブ '%skeleton "lalr1.c"’ を使ってくれ。コマンドラインオプション --skeleton=lalr1.c でもおk。…

c++な字句/構文解析機を作成するメモ

とりあえず、この間から調べているflex/bisonでc++なメモ flex http://flex.sourceforge.net/manual/Cxx.html#Cxx %option c++ bison http://www.gnu.org/software/bison/manual/html_mono/bison.html#C_002b_002b-Parsers %skeleton "lalr1.cc" ひとまず。

sshdにブルートフォースアタックしてきたホストを監獄送りにする

いい加減ブルートフォースアタックが secure ログを圧迫してきたので対策しようとして google 先生にお伺いを立てたら、大変なことになった。 maxlogins.pl → Perl 入れてないよ orz。Matsup's blog: FreeBSD:sshサーバーに対する辞書攻撃の防御 おお、これ…

リエントラントな字句/構文解析機を作る

今更だけれど、あんまりきちんとまとまったものがなかったので。クラスを使った場合は、今までとは結構書き方が変わるのとautotoolsとの相性が非常によくない(ylwrapを書き換えればうまくいくと思う)ので、字句解析側、構文解析側ともに、従来の書き方で。ま…

autotools で、flex/bisonを使うときの設定メモ

調べものしたり、発掘作業をしたのでメモ。configure.ac に以下を追加 AM_PROG_LEX AC_PROG_YACC c++で、コンパイルしたい場合は拡張子を ll/yy にしておく。Makefile.am に以下を追加 AM_YFLAGS = -d AM_LFLAGS = -8 名前を変えたい場合はファイル名を lexe…

複数バッファを使った字句/構文解析機をつくるメモ

nDiaryではなくなって、ローカルでhtmlを生成したい欲求がでてきた。 探してみたけれど良いのがなかったので、ほんなら作るかー、と復習がてらflex/bisonで作成。基本はFlex - Flexの他の特徴で書かれている通り。肝の部分は YY_BUFFER_STATE yy_previous_bu…