問題タブ [preprocessor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - Haskell の CPP 拡張と複数行リテラル
複数行の文字列リテラルを含むHaskellコードでCPP拡張を使用することは可能ですか? Haskell の他の条件付きコンパイル手法はありますか?
たとえば、次のコードを見てみましょう。
のコメントを外す{-# LANGUAGE CPP #-}
と、GHC はこのコードを字句エラーで反駁します。
GHC 6.12.1 を使用すると、cpphs が利用可能になります。
cpphs.compatラッパーとオプションを使用すると-pgmP cpphs.compat
役立つことは確認していますが、カスタム シェル スクリプトに依存しないソリューションが必要です。-pgmP cpphs
動作しません。
PS GHC < 6.12 と GHC >= 6.12 では異なるコードを使用する必要があります。プリプロセッサなしで可能ですか?
UPD。Ganesh の受け入れられた回答に加えて、別の回避策として、すべての条件宣言を別{-# LANGUAGE CPP #-}
のモジュールに配置し、複数行の文字列を含むモジュールで CPP を回避することも発見しました。
preprocessor - プロジェクトがシンボルをリリースおよびデバッグするのを防ぐための前処理ディレクティブ
Release シンボルと Debug シンボルの両方が定義されている場合にプロジェクトがコンパイルされないように、前処理ディレクティブを使用して制限する方法はありますか?
私にお知らせください。
drupal - Drupal テーマで「エンジン」とは何を指しますか?
Drupal のテーマと前処理関数について読んでいて、前処理関数の順序で engineName _engine_preprocess と engineName _engine_preprocess_hook がリストされていることに気付きましたが、エンジンレイヤーが何であるか完全にはわかりません。コア、インクルード、モジュール、テーマについて理解しています。
どうもありがとう
include - CruiseControl.NETプリプロセッサ'インクルード'アノマリー
これは、CC.NETプリプロセッサが公開する「define」機能と「include」機能の組み合わせに関連する奇妙なものです。CCNet 1.4.4.83を実行ccnet.config
しており、メインの構成ファイルに含まれているサブファイルに格納されている共通の要素ブロックを最大限に活用するようにファイルが構造化および分割されています。また、コアプロジェクト定義を独自のインクルードファイルに分割し、ccnet.config
基本的に一連のインクルードとして残します。
これは扱います-プリプロセッサは<define>
要素を正しく含めて解析しglobals.xml
(そしてそこから含まれる他のファイルも再帰的に解析しglobals.xml
)、後で含まれるプロジェクト(それらの定義された要素への参照を含む)は正しく解析されます。
ccnet.config
ビルドプロセスを壊すミスの可能性を減らすためにさらに改良するために、次のように変更しました。
ご覧のとおり、「include」定義の共通の繰り返し部分を独自の定義済みブロックに埋め込み、それを使用して、パスをパラメーターとして使用する各インクルードを有効にします。これは、ファイルの将来の修飾子が勝ったという考えです。含まれている新しいプロジェクトライン(プリプロセッサURNなど)で誤って何かを忘れる機会はありません。それらのxmlファイルが存在し、それらへのパスを正しく取得している限り、残りは共通のインクルード定義で処理されます。
唯一の問題は、これが機能しないことです。何らかの理由で、globals.xml
ファイルが適切に解析されていないように見えます(または含まれている可能性もあります)。これは、後に含まれるプロジェクトが要素が定義されていないことを訴えるためです。つまり、グローバルファイルで定義された要素への参照は、プロジェクトがそれらを認識しないため、「登録」されていないように見えます。
globals.xml
ネストされたインクルードをトップレベルから直接取り出してインクルードしようとしましたが、役に立ちませんでした。プロジェクトの最初の厄介な要素参照をコメントアウトすると、Validatorは次の要素について文句を言い、「前処理でXMLの読み込みに失敗しました:不明なシンボルXXXXXへの参照」というメッセージが表示されます。ただし、の本体をに埋め込むと、これは機能しglobals.xml
ます。ccnet.config
奇妙に聞こえるかもしれませんが、プリプロセッサが完全に解析に失敗してglobals.xml
いるように見えますが、プロジェクトファイルをうまくかみ砕いて、グローバル参照が定義されていないために失敗します。
ただし、これが当てはまる場合、バリデーターはサイレントに失敗します。もちろん、プロジェクトXMLを適切に解析できないため、[元の]タブまたは[処理済み]タブにも何も表示されません。CruiseControl.NETサービス自体は、役に立たない例外で開始できません。
サービスを開始できません。System.Runtime.Serialization.SerializationException:タイプ'ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException' in Assembly'ThoughtWorks.CruiseControl.Core、Version = 1.4.4.83、Culture = neutral、PublicKeyToken=null'はシリアル化可能としてマークされていません。サーバースタックトレース:System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj、ISurrogateSelector surrogateSelector、StreamingContext context、SerObjectInfoInit serObjectInfoInit、IFormatterConverter converter、ObjectWriter objectWriter)atSystem.Runtime.Serialization.Formatters.Binary.WriteObjectInfo。 Serialize(Object obj、ISurrogateSelector surrogateSelector、StreamingContext context、SerObjectInfoInit serObjectInfoInit、IFormatterConverter converter、
すべてのドキュメントには、これが機能するはずであると記載されており、「define」内で「include」を使用する場合の非互換性や不整合については言及されていません。ですから私は困惑しており、この段階での洞察やアドバイスは高く評価されます。
visual-c++ - VisualC++プリプロセッサの定義
C ++プリプロセッサ定義をコマンドラインパラメータとしてカスタムのリンク前ステッププロシージャ呼び出しに転送したり、他の方法でファイルにエクスポートしたりする方法はありますか?
例:たとえば、c ++プロジェクトがあり、そのデバッグ構成にMAKUMBA_OBA = 0x13のようなプリプロセッサ定義を配置します。
次に、次のようなJavaScriptを実行するカスタムプリリンクステップを追加します。
それがうまくいったら素晴らしいでしょうが、jsで3番目のパラメーターを取得することはありません。したがって、問題は、プリプロセッサ定義をスクリプトに渡す方法です。
visual-c++ - 最も有用な MSVC++ 非標準マクロ
標準にはマクロ行 _____LINE_____ と _____FILE_____ が含まれており、C99 では技術的にまだ C++ の一部ではない _____FUNCTION_____ が追加されています。
MSVC++ が追加する便利でクールな追加機能は何ですか? _____FUNCTION_____ がサポートされていることがわかりましたが、他に知っておく価値のある完全に MS 固有のものはありますか?
python - Python/Ruby で C プリプロセッサを模倣しますか?
C のプリプロセッサ機能を Python で模倣する必要があります。
デバッグ リリースを実行する場合は、C で次のように使用します。
-DDEBUG などを使用して、オンまたはオフにします。
Python/Ruby ではどのような方法を使用できますか? つまり、プロジェクト内のすべてのスクリプト ファイルに影響する変数を変更できるように、python/ruby スクリプトの動作を制御するにはどうすればよいでしょうか?
php - Drupal テーマの前処理機能 - プライマリ リンクとサッカーフィッシュ メニュー
メニューが単一レベルのリストの場合に正常に機能する前処理機能があります。ただし、吸盤メニューで動作するようにしたいと思います。スタイルを設定できるように、最上位のメニュー項目にクラスを追加したいと考えています。これは、単一レベル メニューに使用したコードです。
menu_tree()
たとえば、次のように、関数を無駄に使用しようとしました。
どんなアイデアでも大歓迎です。
debugging - #ifdef with gfortran 77
gfortranを使用してFORTRAN77をコンパイルしており、プリプロセッサディレクティブ#ifdefを使用してDEBUGビルドオプションを使用したいと考えています。ただし、それらを使用すると、コンパイル時に「不正なプリプロセッサディレクティブ」という警告が表示されます。標準のツールチェーンから逸脱することなく、この機能を使用することは可能ですか?
actionscript-3 - Actionscript 3の関数にEventListenerを追加することは可能ですか?
Actionscript3でアスペクト指向プログラミングのようなものをセットアップしようとしています。基本的に私ができる必要があるのは次のようなものだけです。
このようにして、任意のクラスの任意のメソッドが実行された後(または実行前)にコードを実行できるため、多くの新しい可能性があります。
これをどのように実装すればよいですか?