## 付録 A. Boost.Buildについて

ここではBoostライブラリやHamigakiライブラリのビルドに使われるBoost.Buildシステム バージョン2(以下、BBv2)について解説する。

## 字句

### トークン

BBv2のトークンは全て空白(スペース、水平タブ、垂直タブ、復帰、改行、改ページ)で区切られる。C/C++のような区切り文字は存在しない。よって、

    hello BBv2! ;
    [this_is_a_token] ;

は、「hello」、「BBv2!」、「;」、「[this_is_a_token]」、「;」の５つのトークンとして解釈される。

トークンに空白を含める場合は、ダブルクォーテーションで囲むか、「\」でエスケープ処理を施す。BBv2のエスケープ処理にはC/C++の「\n」のような特殊なパターンはなく、単に次の文字をただの文字として扱う。よって、

    "hello BBv2!" ;
    \"this\ is\ "a token\"" ;

は、「hello BBv2!」、「;」、「"this is a token"」、「;」の4つのトークンとして解釈される。

### コメント

「#」から改行までの文字列はコメントとして扱われ、BBv2に読み飛ばされる。ただし、「#」がトークンの一部である場合はコメントとみなされない。

    #This is a comment.
    But_#it_is_not_a_commnt. ;