問題タブ [stringtemplate-4]
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.
stringtemplate - StringTemplate4::テンプレート呼び出し内のテンプレート呼び出し
別のテンプレートを呼び出した結果をパラメーターとして渡して、テンプレートを呼び出そうとしていますが、それを機能させることができないようです。絞り込みの例を次に示します。
ファイル内の次のテンプレートグループ:
次のJavaコードで呼び出された場合:
期待どおりに動物園を作成します。
ただし、「zoo」リテラルを同じものを返すテンプレートに置き換えようとすると、STは解析中に次のように文句を言います。
動作しません:
emacs - StringTemplate の Emacs モード
StringTemplate Java テンプレート エンジンで使用できる Emacs モードはありますか?
stringtemplate-4 - グループ ファイルとグループ ディレクトリを結合することはできますか?
私は StringTemplate を使用して HTML を生成しています。これらを組み合わせて、グループ ファイルのディレクトリを作成できるようにしたいと考えSTGroupFile
てSTGroupDir
います。このようにして、複数のテンプレートを 1 つのファイルに含めることができますが、複数のファイルのテンプレートを結合することもできます。これに対するサポートがあるようには見えませんが、何かを見落としているのではないかと思いました。
なぜ私がこれをやりたいのか疑問に思っている場合は、StringTemplate ドキュメントの例を見てみましょう。
上記がすべて 1 つのファイル (test.st) にあり、 を使用していると仮定するとSTGroupDir
、別のファイル (bracket.st) にない限り、「bracket(x)」テンプレートを解決できません。この特定の例では、ブラケットはメイン テンプレートをクリーンアップするのに役立つローカル ヘルパーのようなものです。この場合、test.st の外でブラケットを表示したくないでしょう。
ただし、単純なヘルパー テンプレートのライブラリを作成する場合は、それらすべてを 1 つのファイルに配置し、それぞれのテンプレートに他のファイルのテンプレートからアクセスできるようにすることをお勧めします。
java - 本当に大きなJavaコードを生成する
CHMファイルからリストに最大20kの組み込み関数と定数を入力する必要があります。最初にそれらのリストをシリアル化しようとしましたが、逆シリアル化には1500ミリ秒かかります(最初のヒットでも、コードをすばやく完了するには長すぎます)。
有効なコードを生成するStringTemplateを使用してコード生成を試みました。ただし、「initEnums()メソッドがサイズ制限の65536を超えた」ため、コンパイルされません。(そして私のEclipseはすぐに死にます)
生成されたメソッドは次のようになります。
この制限がソースコードのみに制限されている場合は、別のライブラリを使用してクラスファイルを直接生成できます(おそらくCodeModel)。可能であれば、出力ジェネレーターを最初から書き直さずに、コードを保持したいと思います。助言がありますか?
stringtemplate - 長さの条件付きの場合は StringTemplate4
StringTemplate4 を使用して、次の種類のコードを生成する必要があります。
「接続接続」部分は常に存在するため、メソッド名と残りの引数のみを ST テンプレートに渡します。私のテンプレートは次のようになります。
これは機能しますが、引数がまったくない場合 (conn を除く)、余分なコンマが生成されます。
余分なコンマを削除するために、if条件とlength ST4 関数を使用してみましたが、次のようなさまざまな組み合わせを試しましたが、機能しませんでした。
...その他、解析関連のエラー (入力の不一致)ですべて失敗しました。
結局、私はあきらめて、プリレンダリング ロジックに基づいて、"," または空の文字列 "" のいずれかであるコンマパラメーターをテンプレートに渡すことにしました。
java - StringTemplate は一致しないパターンを置き換えません
テンプレートがあるとします
エンジンを作ります
モデルでdo
set tosports
および noを使用した結果は次のとおりです。man
しかし、私はそれが未解決のままであることを望みます。つまり、
これは StringTemplate 4 で実行できますか?
antlr4 - antlr v4 で ST-4 を使用する
今までantlr 3.4を使って言語固有の文法を作り、ST-3でその言語の翻訳機を作っていましたが、antlr v4とST-4が出てからは以前書いたコードが使えなくなりました。antlr v4 での ST-4 の使用例はありますか。ありがとうございました、