問題タブ [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.
java - Java の #define に相当しますか?
特定のライブラリが含まれている場合、コードが必要なライブラリを作成しています。このコードはプロジェクト全体に散らばっているので、ユーザーが自分ですべてをコメント/コメント解除する必要がなければいいでしょう。
#define
C では、これはヘッダーに a があり、コード ブロックが で囲まれているので簡単#ifdefs
です。もちろん、Java には C プリプロセッサがありません...
明確にするために、いくつかの外部ライブラリが私のものと一緒に配布されます。実行可能サイズを最小限に抑えるために、それらすべてを含める必要はありません。開発者がライブラリを含める場合は、それを使用できるようにする必要があります。そうでない場合は、無視してかまいません。
Javaでこれを行う最良の方法は何ですか?
java - Javacc で前処理/ストリーム内のいくつかの文字をプッシュしますか?
javaccを使用して、入力ストリームの前にいくつかの新しい文字をプッシュできますか?
たとえば、パーサーが次の構文を解析するとします。
パーサーを呼び出す前にスキャナーが前処理${Volume}
する必要があることを javacc に伝えるにはどうすればよいですか?(Title,(Chapter,Paragraph+)+)
MOREステートメントを使用して達成できますか?
ありがとう
drupal - drupalのhook_preprocess_pageが期待どおりに機能しない
$ theme_registry ['page'] ['preprocess関数']の下の最後の項目であるにもかかわらず、hook_preprocess_pageの&$variablesへの変更がレンダリングされないという問題があります。$ variableの内容をファイルに記録すると、内容が変更されたことが示されますが、サイトでは内容は変更されていないように見えます。drupalですべてのキャッシュをフラッシュし、すべてのブラウザーキャッシュをフラッシュしましたが、それでも同じ結果になりました。
/tmp/vars.txtには変数が正しく表示されますが、ブラウザーにはロードされているスクリプトが表示されます。
これはばかげた例かもしれませんが、他のインスタンスでhook_preprocess_pageでこの問題が発生したので、ここで何が起こっているのかを理解するのに本当に役立ちます...
ありがとう。
c++ - C++0x の可用性を判断する
コンパイル時に C++0x 機能が利用可能かどうかを判断しようとしています。一般的なプリプロセッサ マクロはありますか? Visual Studio 2010 のコンパイラと Intel のコンパイラを使用しています。
regex - あるファイルを別のファイルに含める
JSファイルを作成するための非常にシンプルなテンプレートスクリプトを探しています。それはただ一つのことをするべきです:あるファイルを別のファイルに含めることです。
テンプレート(main.js)
script.js
style.css
出力
私が作ったcat main.js | sed -e 's!/\*> \(.*\) \*/!cat \1!g'
。それからの出力:
どのようcat \1
に実際に機能しますか?
UserJS(Greasemonkeyスクリプト)の構築に使用します。リポジトリにJSファイルとCSSファイルがほとんどありません。私はそれらを互いに分離したいと思います。ただし、結果スクリプトは1つだけである必要があるため、すべてのJSファイルとCSSファイルをマージする必要があります。
sed、awk、perl、rubyを使用できます。
最後に、js-preprocessorを作成しました。みんなありがとう!
python - '#define func()'に相当するPython、またはPythonで関数呼び出しをコメント化する方法
私のPythonコードは、たとえば次のように(デバッグ|プロファイリング|トレースなど)に使用される多くの関数呼び出しとインターレースされています。
これらのリソースを消費する関数をコードから#defineしたいと思います。c相当のようなもの
はい、ログモジュールのログレベルメカニズムを使用して、設定されたログレベルより下のログをマスクできることを知っています。しかし、Pythonインタープリターに関数をスキップさせる一般的な方法を求めています(あまり実行しない場合でも実行に時間がかかります)
1つのアイデアは、コメントアウトしたい関数を空の関数に再定義することです。
上記のアイデアはまだ関数を呼び出しており、他の無数の問題を引き起こす可能性があります
java - Javaなどのオブジェクト指向言語に埋め込まれたSQL
オブジェクト指向言語でSQLを操作するのが面倒なことの1つは、SQLステートメントを文字列で定義する必要があることです。
私がIBMメインフレームで作業していたとき、言語はSQLプリプロセッサを使用してネイティブコードからSQLステートメントを解析したため、ステートメントは文字列を難読化せずにクリアテキストSQLで記述できました。たとえば、COBOLにはEXECSQLがあります。 ...END-純粋なSQLステートメントをCobolコードに埋め込むことができるEXEC構文構造。
...これにより、SQLステートメントが非常に読みやすくなり、エラーをチェックできます。EXEC SQL .... END-EXECトークンの間には、インデントや改行などの制約がないため、好みに応じてSQLステートメントをフォーマットできます。
この例は単一行の選択用であり、複数行の結果セットが予想される場合、コーディングは異なります(ただし、v。読みやすい)。
したがって、Javaを例にとると
「古いCOBOL」アプローチを望ましくないものにした理由は何ですか?SQLだけでなく、このアプローチを使用すると、システムコールをはるかに読みやすくすることができます。それを組み込み外国語プリプロセッサアプローチと呼びましょう。
SQL用の組み込み外国語プリプロセッサは実装に役立ちますか?Javaコード内にネイティブSQLステートメントを記述できることの利点はありますか?
編集
私は、オブジェクト指向言語のSQLが先祖返りだと思うかどうか、そしてそうでない場合は、それを改善するために何ができるかを本当に尋ねています。
wix - WiX 未定義のプリプロセッサ変数
自動ビルドを実行して C# プロジェクトの msi を作成するために WiX の使用を開始しましたが、「未定義のプリプロセッサ変数 '$(var.MyProject.TargetDir)'」というエラーが発生しています。
最新の WiX v3.0.5419 を使用しています。wxs ファイル内で、この Web ページ ( http://blogs.msdn.com/jrock/archive/2008/01/29/complete-list-of-candle-preprocessor-変数.aspx )
MyProject の参照を .wixproj に追加しました。メモ帳で開くと参照が表示されます。
これは、msi の作成に使用する nant ビルド スクリプトです。.wixproj がビルドで使用されていないプロジェクト参照を知っているためでしょうか?
誰でもこれについて教えてもらえますか?
drupal - cck ノード タイプの前処理関数
(注: 最初にこれを drupal.org に投稿したのですが、そこでは応答が得られなかったことを思い出しました。そのため、クロス投稿して申し訳ありません)
こんにちは、特定の cck ノード タイプの前処理関数を追加する方法 (組み込みまたはその他) はありますか? cck ノード タイプ内のフィールドの前処理を行いたいと考えています。現在、私は theme_preprocess_node を使用してから $node->type で切り替えを行うか、特定のフィールド名にテーマ関数を使用することができます (そして、現在のフィールドの使用法が探しているノード タイプ内にあることを確認するために切り替えを行います)為に)。私が提案しているのは、このような機能を持つことです...
...しかし、テンプレートファイルを提案するのと同じ方法で前処理関数を提案できるかどうかわかりません
ありがとう!ロブ
javascript - Javascriptに適したプリプロセッサのジレンマ
私は(ほぼ完成した)Javascriptプロジェクトに14か月余り取り組んできました。プロジェクトは私が一晩で終了することを期待していたハックとして始まりましたが、時間の経過とともにJavascriptの部分は68の個別のファイルと10,314の空でない行に成長し、残念ながら現在はCプリプロセッサに依存しています。
Javascriptにcppを使用することになった経緯を説明するのは難しいです。これは単なるハックであり、マクロの拡張、ifdef、定義、およびインクルードをあまり手間をかけずに行うことができるものが必要でした。約3秒間検討した後、cppがこのタスクに「完璧」であることに気付きました。
- リリースモードで消えるLOG()マクロを提供します。
- リリースモードで消え、元のファイルと行番号でタグ付けされた例外を生成するASSERT()マクロを提供します。
- LOG()とASSERT()の実装をコードと交換して、「チェック済み」ビルドを生成できるようにします。これにより、イベントが発生するとコンパクトな形式でログに記録され、クラッシュが発生した場合にサーバーに報告されます。
- Pythonバックエンドと共有されている構成ファイルに基づいて、PROJECT_SOME_CONFIG_VAR_NAMEを「1」に置き換えます。
すべての真のハックと同様に、このハックはプロジェクトにハードコードされているため、それを置き換えるために必要な作業について考えることすら本当に嫌です。私のプロジェクトは、コードベースを(ラップトップではなく)専用のテストサーバーに移動する段階に達していますが、Linuxインスタンスをセットアップすると、4.1以降のGNUcppバージョンではJavascriptが前処理されなくなることがわかりました。エラーでクラッシュします。
ビルド要件のリストに特定のバージョンのGCCを追加するのではなく、この混乱を本当に修正するのに今が良い時期だと思いました。しかし、私の問題は、cppと同じパワーと機能を備えた代替のプリプロセッサが見つからないことです。私はm4を検討しましたが、m4はそれ自体が苦痛の世界です。私が見つけた他のJavascript固有のプリプロセッサには、現在依存しているすべての機能が欠けています。例:
__FILE__
&__LINE__
- 可変個引数マクロ
- 警備員を含める
- トークンの連結
- 条件付きコンパイル
私は、Javascript専用の新しいプリプロセッサを実装することを真剣に検討しています。これは、Cプリプロセッサの構文が非常にうまく機能しているため、完全に借用しています。そうする前に、もっと良いオプションがあるかどうか疑問に思っています。:)おそらく、私が交換できるcppのような汎用プリプロセッサがすでにありますか?これらの68個のファイルのすべてのプリプロセッサ構文を置き換えるために必要な作業は、単にプリプロセッサを再実装するために必要な作業量に近づきます。
これまでCプリプロセッサに依存して成功したことに非常に驚いています。心が理解することは健康よりもこの仕事でより効果的です。私が利用できるもう1つのオプションは、Linux、Darwin-i386、Win32用のcpp-4.1のバージョンを静的にビルドし、それらのバイナリをプロジェクトのリポジトリに保存することです。
ヘルプ!