パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

FreeBSDでのifconfigリファクタリング作業」記事へのコメント

  • by Anonymous Coward
    kameをハックしてた時、yaccとかlexが全くわからなくて
    途方に暮れたことがあります。

    gdbで追っていくと、confファイルを読んで
    プログラム内のtmpリストに追加しているように読める。
    そして、ちょうどメンバ数2までの制限が
    かかってることまではわかったが、改造出来ない・・・。

    そしてまわりを見回しても、C+スクリプト言語(sed,awk,per
    • by Anonymous Coward
      yaccは設定ファイルの構文解釈に便利なので良く使ってます。
      BNFさえ理解できれば、後はそれ程難しくないですね。お約束レベルの事をいくつか憶えればおしまい。
      BNFわからなければRFCも読めませんから当然みんな判っ
      • Re:yaccは便利 (スコア:2, 参考になる)

        BNFつながりなんですが、まだだれも上げてなかったので書いときます。

        最近C++のboost::spirit [boost.org]という構文パーサにはまっております。
        非常に良く出来た(変態的な)ライブラリで、yaccや組み込みSQLのような別の処理系や
        プリプロセッサを使わず、生のC++コードにEBNFもどきの文法とアクションを直接埋め込んで
        構文・字句解析ができるようになっています。

        yaccとは一味違うEBNFを採用していること、無理やり感のある独特な構文表記、
        Javaに押されぎみでマイナー感が出てきたC++と、いろいろ絡
        • by Anonymous Coward on 2003年12月03日 20時47分 (#447160)
          spiritって実用的な時間でコンパイルできますか?
          使ってみてもよさそうだけどGCCと組み合わせたときがどうなるか…
          親コメント
          • Re:yaccは便利 (スコア:2, 参考になる)

            by Sune (7520) on 2003年12月03日 21時51分 (#447207)
            時間はなんともいえませんが、生成処理は yacc + Cより遅そうです。
            C++ + templateなんで、かなりCPUを消費します。

            まだ小規模なとこにしか使っておりませんが、数十~百行程度
            のEBNF構文定義であれば最近のPCでストレスなくコンパイル
            できます、が、それ以上の規模になるとどうなるかわかりません。

            #VC7.1+P4 3GHzなんで、gccを使う場合参考にならないかも

            シンボルテーブルを食い尽くすらしく、デバッグ用のオプションを
            少し弱めに変更しないとうまくリンクできませんでした。

            他に気づいた点で言うと、yaccで生成したものと比べて実行時に
            スタックを消費する傾向があるので、その辺も注意したほうがよいでしょう。

            等価な文法を食わせて統計を取ってみると面白そうですね。
            親コメント

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...