問題タブ [dsl-tools]
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.
dsl - DSL ツール: カスタム コードで新しいダイアグラムを作成する
Visual Studio 2005 用の DSL ツールを使用しています。
特定の時点で、カスタム コードを使用して新しいダイアグラムを作成したい DSL があります。
ここまでで、既に開いている現在のダイアグラムを上書きして、新しいダイアグラムを作成することができました。コードは次のとおりです。
しかし、私が本当にやりたいことは、
新しいインスタンス FEGeneratorDiagram を使用して新しい DSL ドキュメントを作成し、要素を追加してプロパティを設定する私のロジックを続けます。
何か助けはありますか?
c# - C# 隠しトランザクションを作成する
VS2005 用の C# および DSL ツールを使用しています。
一部のデータを変更するためにトランザクションを作成する必要がありますが、それらをユーザーから隠したい、つまり、VS2005 の UNDO リストに表示されないようにしたいです。
UndoManager を無効にしてみました
ただし、それを無効にすると、元に戻すリスト内の既存の以前のアクションがすべてクリアされます。
トランザクションには「isHidden」というプロパティがありますが、読み取り専用です。非表示に設定する方法がわかりません。また、新しい UndoManager を作成しようとしましたが、これも読み取り専用のプロパティです...
元に戻すリストに表示されないトランザクションを作成するにはどうすればよいですか?
疑問点を明確にするために、さらに詳細を書きたいと思います。どうもありがとう、ルイス・フィリペ
[追加した]
プロパティ値に基づいてすべての図形の背景をペイントします。たとえば、true の場合は緑、false の場合は赤。形状の背景を描画するにはトランザクションを開く必要がありますが、私にとっては計算された (読み取り専用) プロパティとして動作します。
python - Python で DSL 用のコンパイラを作成する
Python でゲームを作成しており、マップ データ ファイル用の DSL を作成することにしました。正規表現を使用して独自のパーサーを作成できることはわかっていますが、PHP エンジンで使用されている re2c のように、これをより簡単に実行できる既存の python ツールがあるかどうか疑問に思っています。
追加情報:
- はい、確かに DSLが必要です。そうでなくても、プロジェクトで DSL を構築して使用する経験が必要です。
DSL にはデータ (宣言型?) のみが含まれており、「実行」されません。ほとんどの行は次のようになります。
SOMETHING: !abc @123 #xyz/123
データのツリーを読み取るだけです。
visual-studio - DSL ツール: DLL を弱い名前で作成する方法
DSL Tools ソリューションがあります。
このプロジェクトに弱い名前の参照を追加する必要があります。DSL Tools プロジェクトの DLL は厳密な名前が付けられているため、弱い名前の DLL は使用できません。
再コンパイルできないため、DLL を厳密な名前にすることはできません。
Dsl および DslPackage プロジェクトのプロパティに移動して、署名タブの [アセンブリに署名する] オプションのチェックを外して、DSL ツール プロジェクト DLL を弱い名前で作成しようとしました。
それから私はそれをコンパイルします。エラーリストには次のエラーが表示されます
VS2005 の出力ウィンドウを見ると、gacutil が呼び出されていることがわかります
その後、コマンド プロンプトを使用すると、gacutil.exe エラーが次のように表示されます。
gacutil.exe が呼び出される理由と方法がわかりません。プロジェクトとソリューションのプロパティを確認しましたが、gacutil.exe を呼び出すように構成されたオプションはありません。「gacutil.exe」のすべてのファイルの中も調べましたが、何も見つかりませんでした。
私が本当に欲しいのは、厳密な名前を付けることができない弱い名前の DLL を使用できるようにすることです。この結果、私は自分の DSL Tools DLL を弱い名前にしようとしてきましたが、できません。
これを回避する方法について何か助けはありますか?
前もって感謝します、 ルイス・フィリペ
.net - Microsoft Visual Studio SDK DSLツール-真面目な人はいますか?
いくつかの抽象的なデザイナーを作成するためのMicrosoftDSLツールキットを検討しています。私はすでにいくつかのPOCを行いましたが、同じことについていくつかの意見を聞きたいと思います。
Microsoft DSL ToolkitとT4での作業経験を共有するためにここにいる人はいますか?また、オープンソースのDSLプロジェクトへのポインタが役立ちます-例:Microsoft Service Factoryモデリングエディションは、DSLツールキットに大きく依存しています。
OSLO / Quadrantがリリースされるまでには時間がかかるため、MicrosoftDSLデザイナーに依存するしか選択肢がないと思います。(同じ上のKiethのブログを参照してください)
また、DSLに関して私がすでに持っているいくつかの情報があります:
api - DSL に解析ツールが必要なのはなぜですか?
DSL は API のように単純であり、したがってパーサーを必要としないのではないでしょうか? または、ドメイン固有言語が実際に何であるかを誤解していますか? 特定のドメインの問題を解決するための組織化された一連のルールを指していると思いました。API はその定義に適合するように見えますよね?
.net - DSL とフォームの作成
私は現在、次のようなプロジェクトの要件/範囲設定に取り組んでいます
。1) 5 から 6 のフォーム
2) フォーム全体に 250 から 300 の質問/フィールドがある
3) 2 から 3 のワークフロー
技術者ではないビジネス アナリストにフォーム開発の責任を負わせることができる .NET またはクロスプラットフォーム ツールはありますか? これに適した DSL はありますか? 私は、この人がInfoPath を使用しようとしてもうまくいかないと思います。
実行時にエンジンを介して CRUD 画面を表示できる DSL を探していると思います。このようなものが既に存在する場合は、独自の XML または DSL を使用したくありません。
ASP.NET WebForm または ASP.NET MVC アプリケーションの一部としてフォームを表示することを考えています。
.net - .NETでDSLを構築するためのツール
私はDSLの開発にますますからかわれています。私はfslexとfsyaccを使用してF#で小さなものを開発しましたが、エラーメッセージは不正確です(より良いものを生成する方法も見つかりません。エラーケースの処理方法に関するドキュメントはほとんどないようです)。 UNICODE文字列を適切に解析しません。私には受け入れられません。簡単に言えば、DSLの開発を非常に簡単にするツールを探しています(そのためのVisual Studioツールは、私が求めているものとはまったく異なります)。構文解析/AST生成の部分に最も興味があります。私はANTLRを見てきましたが、コードと文法定義のメタ言語を混同しているのは私には悪いように見えるので、それや同様の問題に苦しんでいる解決策を回答に記載しないでください。また、私はそこで見ました」s Booという名前の言語のためのいくつかのものですが、私は今のところさらに別の言語をいじることには本当に興味がないので(特にサポートがほとんどない場合)、どちらにも当てはまりません。適切に文書化されていて、.NETで正常に機能し、動的に型指定された言語の使用やDLRの使用を伴わない限り、他の提案はありがたいです。
dsl-tools - DSL Tools ダイアグラムで図形をネストする方法は?
Area と Entity という 2 つの主要なドメイン クラスを含む DSL があります。領域は GeometryShape によって視覚的に表されますが、エンティティは CompartmentShape によって表されます。エンティティはエリアに埋め込むことも、埋め込まないこともできます (この場合、エンティティはエリアの一種であるルート オブジェクトに埋め込まれます)。異なる領域のエンティティ間を含む、エンティティ間の関係が存在する場合があります。エリアを他のエリア内に埋め込むことも、エンティティを他のエンティティ内に埋め込むこともできません。
私の問題は、ダイアグラムから必要な動作を取得できないことです。領域へのエンティティの埋め込みは、モデル レベルでは完全にうまく機能しますが、視覚的な表現は不規則に動作します。たとえば、その領域の外側の領域で作成されたエンティティをドラッグすると、マウス クリックに応答しなくなります (再親化を実行するコードがありますが、どういうわけかダイアグラム側が壊れています)。
これを行う方法のサンプルを高低で検索しましたが、空になりました。私がウェブ上で見つけたすべての例は、「参照」関係を介してネストをシミュレートしますが、ドメイン クラス (したがって、関連する形状クラス) の真の埋め込みを実行しています。
誰かがこれを行う方法の例を持っていますか?
私が発散している間、ダイアグラム/シェイプクラスが大幅に文書化されていないと思うのは私だけですか?
c# - DSL: DSL ルールから C# 式へ
質問はおそらく複合的なものです。拡張させてください:
- .NET オブジェクトの public bool プロパティに基づいて AND/OR ベースのルールを作成するためのデザイナー(スタブ/フレームワーク/メタデザイナー)は存在しますか? 任意の DSL/Boo/... 出力として保存されます。
- DSL 出力を C#式にコンパイルすることは可能ですか?
私たちの主な問題は、ドキュメントとコードの間のギャップです。私たちの製品は何百ものユーザー定義ルールに基づいており、変更要求をスピードアップしたいと考えています。
シンプルなデザイナーをユーザーに提供し、出力を取得できれば、それを C#/IL コードに変換/コンパイルした後、変更要求サイクルを迅速に行うことができます。
私たちの問題は特定の問題であることはわかっていますが、「壁の中のレンガ」は大歓迎です!
例:
AC# クラス、対象:
デザイナーでは、作成できるはずです
- 任意のタイプのグラフィック デザイナー (つまり、パブリック プロパティを選択するためのドロップダウン)
DSL での出力:
C# での出力:
更新 #1
静的型の .NET クラスの使用をサポートする DSL 言語があればうれしいです。つまり、ユーザーがコードを確認できる場合 (例では「Output in DSL」 )、デザイナーは必要ありません。
アップデート #2
ティップをもとに表情木を見つめる。数日後、私は DLinq に出くわしました - 私は DLinq の大ファンではありませんでしたが、この場合、問題のドメインに非常によく適合します。
- 構文解析が容易(A > 2 AND B < 4) OR C = 5を式ツリーに
- そんな表現がしやすい
- シリアル化/逆シリアル化が非常に簡単
- FlowLayoutPanel に基づく GUI は「式ビルダー」として正常に動作します