問題タブ [dsl]

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.

0 投票する
2 に答える
7891 参照

exception - StructureMap 例外コード: 202 既定のインスタンスが定義されていません

SM で以下を登録してからインスタンスを作成しようとすると、「StructureMap Exception Code: 202 No Default Instance defined for PluginFamily...」という例外が発生します。

IRepository のインスタンスを取得しようとすると、例外が発生します。

私が欠けているものを誰かが知っていますか?

乾杯

オリー

0 投票する
0 に答える
83 参照

properties - プロパティ拡張言語(DSL)-何か存在しますか?

私の問題は次のとおりです。環境ごとにP台のサーバーを使用して、M個の異なる環境(qa / prod / etc。)でN個のアプリケーションを実行しています。掛け算すると、固有の構成の数は数百になります。これらの各アプリケーションには、一連の環境固有のプロパティ(パブリックホスト名、リスニングポート、最大メモリなど)があります。

掛け算すると、設定するプロパティは数千あります。ただし、プロパティがどうあるべきかを定義する実際のルールは非常に単純です。たとえば、物理サーバーごとに2つのアプリインスタンスがある本番環境では、1つのアプリがポート8080にバインドされ、もう1つのアプリが8081にバインドされます。

これが私が欲しいものです:プロパティ設定がどうあるべきかを指示するルールを指定できる言語(DSL)。繰り返さないようにしたいと思います。言語は宣言型である必要があります。私たちはかなりJava中心ですが、私がする必要があるのは名前と値のペアを生成することだけなので、自分自身を制限するのは嫌です。

そのようなものは存在しますか?何も見つかりませんでした。

Droolsや他のルールエンジンを使用できると思いますが、この目的には非常に重いものです。プロパティファイルは最小公分母です。それらをwar/earファイルに入れたり、ビルド中にテンプレートベースの置換を行うために使用したりできます。この種の問題を解決するためのより洗練された方法は確かにありますが、少なくとも短期。

0 投票する
3 に答える
820 参照

python - Python の "Construct" に相当する Haskell

Constructは Python で実装された DSL で、データ構造 (バイナリおよびテキスト) を記述するために使用されます。データ構造を記述したら、construct はそれを解析して構築できます。どちらが良いか (「DRY」、「宣言型」、「表示意味論」...)

使用例:

私は Haskell 用のそのようなツールを必要としています。このようなものが存在するのだろうかと思います。

私は知っています:

  • Data.Binary: ユーザーが解析と構築を別々に実装
  • Parsec: 解析専用? テキストだけ?

これを達成するには、テンプレート Haskell を使用する必要があると思いますか?

0 投票する
5 に答える
3016 参照

delphi - Delphi用のパーサジェネレータ?

誰かがwin32Delphiコードを生成するパーサジェネレータをお勧めできますか?私がやろうとしているのは、単純なドメイン固有言語を作成することです。

0 投票する
1 に答える
140 参照

wix - DSL セットアップ プロジェクトの問題の解決

DSL セットアップ プロジェクトで InstallerDefinition.dslsetup ファイルと戦っています。次のエラーが表示されます。

実行中の変換: セットアップ プロジェクトは、環境からプロジェクト 'PsiTraffic.Modeling.PomModel.Dsl' の出力パスを取得できませんでした。このプロジェクトがソリューションに存在することを確認してください。Visual C# および Visual Basic プロジェクト タイプのみがサポートされています。

プロジェクト 'PsiTraffic.Modeling.PomModel.Dsl' はソリューション内にあり、セットアップ ソリューションのプロジェクト参照でもあります。プロジェクトはC#なので、それが私に与えた唯一の2つのポインタは役に立たない.

これは、dslsetup ファイルで参照しているセクションです。

ファイルへのフル パスを指定すると、エラーは解消されますが、これは project 属性の要点全体に反し、後で supportAssembly 属性からエラーが発生します。

これに関する良い例はあまり多くなく、その Visual Studio は問題を診断するためのサポートを提供しません。

洞察や良い例をいただければ幸いです。

0 投票する
2 に答える
485 参照

dsl - DSLはシリアル化にルート要素を追加します

私は以下を達成するための助けを探しています

図は車を表しており、ユーザーはエンジンと色を追加できます

XMLを表示すると、次のようになります。

私がやりたいのは、車を「車両」の中に包むことです。

これを達成するための最良の方法がわかりません。モデルエクスプローラーと生成されたXMLを「車両」でラップしたいのですが、他のすべての目的と目的では、ユーザーは車でのみ作業しています。

情報:Visual Studio 2010、C#およびDSL SDK for 2010

0 投票する
3 に答える
669 参照

scala - ScalaとJythonの中置演算子

エンドユーザー向けの簡単な埋め込みスクリプト言語を必要とする計算指向のアプリの言語を評価しています。私は、Scalaを主要な基礎言語として使用し、Jythonをスクリプトインターフェイスとして使用することを考えていました。:*Scalaの魅力は、行列オブジェクトの要素ごとの乗算などのメソッドを定義し、それを中置構文で使用できることa :* bです。ただし、:*はPythonでは有効なメソッド名ではありません。Jythonはこれにどのように対処しますか?

柔軟性があるため、スクリプト言語としてScalaを使用することを検討します。しかし、型推論を使用しても、matlabのような動的言語に慣れている一般ユーザーにとって、すべてのvalおよびvar必要な型定義は多すぎます。比較すると、Booには機能する可能性のあるオプション-duckyオプションがありますが、.NETではなくJVMを使用したいと思います。-duckyScalaはないと思います。

より一般的には、潜在的ディリクレ割り当てをモデル化するために、次のDSL(http://www.cs.utah.edu/~hal/HBC/から)を検討してください。

この構文は、階層ベイズモデリングに精通しているユーザーにとっては素晴らしいものです(たとえば、PyMCMCと比較して)。Pythonのような基本的なスクリプト言語にアクセスできることに加えて、そのような構文を簡単に定義できるJVM上の言語はありますか?

感謝します。

0 投票する
1 に答える
370 参照

python - Jython構文の拡張

Jythonに構文を追加して、ユーザーにとってより優れたAPIを有効にしたいと思います。たとえば、NumPyのような行列ライブラリは、Matlabの:**中置演算子のような行列演算と要素単位の演算の両方を持つことで恩恵を受けます。

次を使用して、Octaveでマトリックスを作成できます。

これはNumPyよりもかなり良いです:

R行列/データフレーム内の変数を選択するために式「y〜x+z」を使用します。["y"] ["x","z"]これは、文字列 "y〜x+y"の代替または解析よりもかなり優れています。

より複雑な例は、 EasyExtendを使用してCythonに実装できます。ただし、EasyExtendはJVMでは機能しません。

Jythonに構文を追加する最も簡単な方法ですが、適度に堅牢な方法は何ですか?まったく新しい言語構造を実装したり、jython内でミニ言語を定義したりするためのフレームワークがあると便利です。

0 投票する
1 に答える
1211 参照

c# - IronPython を使用して C# アプリ用に記述された DSL を簡素化する

前の質問からの提案のおかげで、IronPython、IronRuby、および Boo を試して C# アプリ用の DSL を作成するのに忙しくしています。ステップ 1 は、ユーザーとナレッジ ベースが大きいため、IronPython です。ここでうまく機能することができれば、やめることができます。

これが私の問題です:

IronPython スクリプトが Lib というクラスの関数にアクセスできるようにしたいと考えています。これで、アセンブリを IronPython ランタイムに追加し、作成したスコープでステートメントを実行してクラスをインポートできます。

Hello world スタイルのステートメントである Lib::PrintHello を実行する場合、Python スクリプトには次のものが含まれます。

または(静的でない場合):

次のように、Python スクリプトに基本的なステートメントだけを含めることができるように、環境を変更するにはどうすればよいですか。

これらのスクリプトは、プログラマーでなくても簡単に記述できるようにしたいと考えています。クラスとは何か、どのように機能するかを彼らに知られたくありません。IronPython はまさにそこにあるので、for、do、if などのいくつかの基本的な操作と、基本的な関数定義では、DSL 用のコンパイラを作成する必要がありません。