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

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は便利 (スコア:3, 参考になる)

        by cloudy (1160) on 2003年12月03日 4時27分 (#446572)
        昔は構文木をテーブルで持つyacc

        昔話をすると爺くさくてやなんだけど、僕は昔kmyaccというクローンを実装しまして、CP/M(80の方)上で動かしてました。Cの構文程度ならちゃんと処理できましたよ。

        yaccって、人が思ってるほどメモリ食うもんじゃないです。生成されるテーブルもかなり圧縮されてますし。

        ただし、「それ程難しくない」とは言えないなあ。このifconfigの構文程度なら簡単でしょうけど。

        実際、conflictが出まくると頭かかえちゃいます。

        親コメント
        • by Rekishi (10137) on 2003年12月03日 6時06分 (#446603)
          もしかしてkmyaccの作者の方ですか?

          昔ずいぶんお世話になりました。どうもありがとうございます。

          ちょっとしたインタプリタ風ツールの入力解析やら#446560のACの方同様の設定ファイルの解析やら程度にしか使ってませんでしたが、私みたいに頭の出来のよろしくない奴が手で書くぐらいだったらyaccに吐かせたほうが効率のいいものができたような気がしてました。
          (パーサの類を手書きすると状態遷移が多すぎてわけがわからなくなって、実行時間やメモリの話以前に結局いつになっても物が出来上がらないからだ、というオチは伏せておきます…)

          ついでに言うと、そんな程度のものでもなかなかconflictの解決ができずに頭をかかえちゃったりして。「それ程難しくない」といえる人がうらやましい…

          まあ、最初の投稿者の方の話じゃないですが、使っている人自体少ないし使いこなしている人はさらに少ないというのは当たっているかなと思います。

          それはさておき、今手元で動いてるFreeBSD5.1のifconfigのマニュアルを見ると、「こんなの手で書きたくない!」とは思いますね。yaccを使おうというのは正しい選択かなと。
          親コメント
        • kmyacc、今でも時々使ってます。

          bisonやFreeBSDに付属のyaccに比べて、出力するコードがコンパクトだし、
          liby.a が要らないのがUNIX/Win(BorlandC++)でコードを共用するのに便利なもので。
          親コメント

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

処理中...