ダウンロード
最新版は、https://github.com/jonigata/caperからダウンロードして下さい。
インストール
いまのところインストーラ等は用意していません。
linuxでは、解凍後にmakeしてください。サンプルのビルドはexamplesディレクトリでmakeです。
windowsでは、中にプロジェクトファイルが入っているのでそれを使ってください(VS2008用)。
一応実行ファイルも入れておきます。
※ビルドにはboostが必要です。使うだけならいりません。
実行方法
% ./caper input_file output_file
です。詳しくはTutorialをご覧ください。
オプション
- -c++ C++(デフォルト)
- -cs C#
- -js JavaScript
- -d D言語
- -boo Boo言語
- -ruby Ruby
履歴
2008年10月29日
- ※重要※ 9月14日のコードで、異なるルールで同じアクションを指定していたときに誤動作していたのを修正しました。
2008年9月14日
- 出力コードのインデント等を美しくした
- 出力コードの重複部分などの無駄を最適化
- ※重要※
post
の返値を 「accept || error
」にしました。従ってエラーチェック (parser.error()
) はループ脱出後に行う必要があります。
2008年8月30日
- Makefile, VC++のプロジェクトを修正して若干ビルドしやすくした
- 'leaf'(LLVM用コンパイラの練習)追加。詳しくは日記で
2008年8月15日
- エラーメッセージに"caper: "を追加(make時にわかりづらかったため)
- エラー時に出力ファイルを削除(makeに対応)
- インクルードガードの変更(数字を残す、末尾にアンダーバーをつける、Windowsではパスを削除)
2008年3月24日(1)
- C#版出力コードを修正。boxingを使うようになったのでインターフェイスが変わりました。
2008年3月12日(2)
- linuxでコンパイルが通らなくなっていたのを修正。
2008年3月12日(1)
- ルートから連結していないルールが存在していたときに強制終了していたのを修正。
- %access_modifier <identifier>;宣言を追加。C#ジェネレータでParser/ISemanticAction/Tokenにアクセス限定子を付加します。
- %namespace宣言で識別子に'.(ピリオド)'を使えるように。C++だと出力コードがだめになる(ピリオドがついたまま出力してしまう)ので注意。
- コンパイラをVS2008に変更。
2008年2月16日
- C#、Dのジェネレータを搭載(undocumented)。-cs, -dオプションで。
- C# 主にcolilicaさん
- D ytqwertyさん
- JavaScriptジェネレータでセマンティックアクションに渡される引数が無意味なデータだったのを修正。
- token_prefixで識別子を省略する(%token_prefix;とする)ことでトークン前置詞を削除可能にした。
2006年10月30日
- 高速版LALR(1)エンジン搭載。
2006年10月22日
- JavaScriptジェネレータ追加
- ソース分割
2006年10月19日
- 同じ内容の規則があるとエラーにするようにした。
- ルートからつながってない規則があるとエラーにするようにした。
- exeファイルがランタイムを必要としていたのを修正。
2006年10月19日より前 --- 忘れた