◀一般トップへ
  • 6516 アウトライン解析について
    • 6519 Re:アウトライン解析について
      • 6520 Re2:アウトライン解析について
      • 6521 Re2:アウトライン解析について
        • 6523 Re3:アウトライン解析について
          • 6524 Re4:アウトライン解析について
  • [6516] アウトライン解析について 猫(仮) 2007年12月12日 03:42

    はじめて投稿します。
    Ver.1.6.2.0(V1310)を使用しております。
    アウトライン解析の挙動について動作報告いたします。

    1:void func1(void);
    2:#if(FOO)
    3:#else
    4:#endif
    5:void func2(void);

    アウトライン解析ルールC/C++で、上記のようなコードを解析すると
    (1): func1 (宣言)
    となり、func2が抜けてしまいます。
    "#if"と"("の間にスペースを空けるか、"#else"を削除/コメントアウトすることで、func2が解析結果に出てくるようです。

    このようにスペース(もしくは#else)の有無の有無で解析結果が変わってしまうのは大変不都合があるので、可能であれば修正をお願いいたします。
    • [6519] Re:アウトライン解析について じゅうじ 2007年12月13日 16:41

      ▼ 猫(仮)さん
      > このようにスペース(もしくは#else)の有無の有無で解析結果が変わってしまうのは大変不都合があるので、可能であれば修正をお願いいたします。

      Bugs[#1849852]で修正パッチ出して置きます。
      http://sourceforge.net/tracker/index.php?func=detail&aid=1849852&group_id=12488&atid=112488

      #if (0) でfalse (修正前はtrue)
      #if(0) でfalse (修正前はtrue)
      #if(XXX) でtrue (修正前はfalse)
      #if 01 でtrue (修正前はfalse)

      信頼性は、あまり上がっていません。..;
      又、コメント解析との一致は、考慮していません。
      • [6520] Re2:アウトライン解析について 猫(仮) 2007年12月13日 23:34

        ▼ じゅうじさん
        > #if (0) でfalse (修正前はtrue)
        > #if(0) でfalse (修正前はtrue)
        > #if(XXX) でtrue (修正前はfalse)
        > #if 01 でtrue (修正前はfalse)
        >
        > 信頼性は、あまり上がっていません。..;
        > 又、コメント解析との一致は、考慮していません。

        早速の修正ありがとうございます。
        まだあまり複雑な動作確認はしていませんが、とりあえず目的のファイルの解析は期待通りできるようになりました。
      • [6521] Re2:アウトライン解析について げんた 2007年12月15日 07:09

        >Bugs[#1849852]で修正パッチ出して置きます。
        根本的な問題は#ifではなく#elseの処理の方にあるので,そちらも直したパッチを作成しました.
        #ifは
        #if((..(0
        まで判定するようにしています.
        #if 01 と書く人はいないような気がしますが...
        #if 0x01 なら0x0の先まで見ないと判定できないですし,そこまでする意味あります?

        パッチはBugsからPatchesへ移動しました.
        • [6523] Re3:アウトライン解析について じゅうじ 2007年12月16日 01:32

          ▼ げんたさん
          > 根本的な問題は#ifではなく#elseの処理の方にあるので,そちらも直したパッチを作成しました.
          > #ifは
          > #if((..(0
          > まで判定するようにしています.

          -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          すいません、古いファイルのパッチでお手数掛けました。
          こちらを、最新にすべきでした。
          [sakura-editor] / sakura / trunk
          [sakura-editor] / sakura / tags / R1.6.2.0
          -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          > そこまでする意味あります?
          はい、"0"の1文字に限定する必要性は特に無いと思います。
          • [6524] Re4:アウトライン解析について げんた 2007年12月17日 22:16

            >> そこまでする意味あります?
            >はい、"0"の1文字に限定する必要性は特に無いと思います。
            0か00か01か0x10かは最後まで見ないとわかりません.
            もしかしたら#if 0 < SOMETHING かもしれない.

            モデルの単純化という面では1文字だけ調べる現状がそんなに大きく外れているとも思えないですし,逆に精度を高めようと思うなら後ろの一文字だけ調べるのでは不十分だと思えるのですけど.