◀一般トップへ
  • 5271 #ifdef~#else~#endifの色分けについて
    • 5272 RE: #ifdef~#else~#endifの色分けについて
  • [5271] #ifdef~#else~#endifの色分けについて あやこ 2006年06月14日 15:06

    初めまして。
    初心者プログラマーのあやこといいます。

    サクラエディターはいつも使わせて頂いています。
    ありがとうございます。

    質問なのですが、サクラエディタのカラー表示で、
    #ifdef~#else~#endifの色分け設定はできるのでしょうか?
    ソーストレースをしていて、有効な部分と無効な部分の色分けが
    できると大変便利だわと思いましたので・・。

    ちなみに秀丸エディタでは、#define値を直接指定することで、
    色分けできる機能があるようです。これには驚きました。
    秀丸にできて、サクラエディタでできない機能は無いと思っていますので。

    基本的な質問で恐縮ですが、どなたかご返答を
    宜しくお願いいたします。

    あやこ
    • [5272] RE: #ifdef~#else~#endifの色分けについて すい 2006年06月15日 00:45

      >ちなみに秀丸エディタでは、#define値を直接指定することで、
      >色分けできる機能があるようです。これには驚きました。
      >秀丸にできて、サクラエディタでできない機能は無いと思っていますので。

      絶対無理。出来るわけない。

      そういう判定処理をするにはインタープリタもどきの機能が必要ですからね。

      #if に対応する #else / #endif を探したりする処理とか。
      #if や #define の後ろの数式・比較などの計算処理をおこなったり、とか。
      #define で変数(C言語的にはマクロとか呼びますが)に値などを格納する、
      などの変数の管理機構など。

      そういう機能を持たなくてはそういう判定出来ないでしょ?

      で、秀丸で何故そういう事が出来るかと言うと、秀丸はインタープリター
      システムを持っているから。
      秀丸はマクロ言語を内蔵していて、マクロ中で変数やら数式やらを
      使う事ができる、つまり数式処理やら変数の管理機構やらを初めから
      持っているエディタなわけです。ですから秀丸内部では、それら初めから
      持っている数式処理やら変数の処理部やらを流用する事で、C言語の
      ソースを解釈して判断するなんていう機能も実現出来ているのではないかと。

      一方でサクラエディタにはそんなマクロ言語のような機構は全く持っていません。
      サクラエディタが持っているマクロは単なるキーボードマクロ。(拡張子.macのヤツね)
      マクロ中に記録された過去の操作記録を上から下へなぞって実行する、というだけ。
      数式処理とか変数とか その類の処理部は一切 持っていません。

      PPAとかWSHとかのマクロでは数式処理とか変数とか使えますが、それらは
      サクラエディタとは関係ない外部のプログラム(PPA.DLL やWSHのモジュール)
      が処理しているのであって、サクラエディタが処理しているわけではありません。
      サクラエディタの中にはそんな処理機構部はありません。

      ですから、サクラエディタでC言語のソースの解析を行わせるようにするには
      サクラエディタにインタープリター処理システム(もどき)をゼロから作成・追加
      していかなくてはならず、、、そんな大変な事、誰もやらないんじゃないかな?