タグ付けされた質問 「dsl」

7
文字列を同等のLINQ式ツリーに変換する方法は?
これは、元の問題を簡略化したバージョンです。 Personというクラスがあります。 public class Person { public string Name { get; set; } public int Age { get; set; } public int Weight { get; set; } public DateTime FavouriteDay { get; set; } } ...そしてインスタンスを言うことができます: var bob = new Person { Name = "Bob", Age = 30, Weight = …
173 c#  lambda  antlr  dsl  predicate 

1
どのようにポニー(ORM)はそのトリックを行いますか?
Pony ORMは、ジェネレーター式をSQLに変換する素晴らしいトリックを行います。例: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."name" LIKE "Paul%" ORDER BY "p"."name" LIMIT 2 [Person[3], Person[1]] >>> Pythonにはすばらしいイントロスペクションとメタプログラミングが組み込まれていることは知っていますが、このライブラリが前処理なしでジェネレータ式を変換する方法を教えてください。魔法のようです。 [更新] ブレンダーは書きました: これがあなたが探しているファイルです。イントロスペクションウィザードを使用してジェネレータを再構築しているようです。Pythonの構文が100%サポートされているかどうかはわかりませんが、これは非常に優れています。–ブレンダー 私は彼らがジェネレータ式プロトコルからいくつかの機能を探っていると思っていましたが、このファイルを見て、ast関連するモジュールを見つけました...いいえ、彼らはその場でプログラムソースを検査していませんね?心が吹く... @BrenBarn:select関数呼び出しの外でジェネレータを呼び出そうとすると、結果は次のようになります。 >>> x = (p for p in Person if p.age > 20) >>> x.next() …

13
ドメイン固有言語とは何ですか?誰かそれを使っていますか?そして、どのように?
私はある種のイントロを探していて、誰かがそれを使用したかどうかを確認していると思います。それを使用することの特別な利点はありますか? ウィキペディア: ドメイン固有言語(DSL)は、特定の問題ドメイン、特定の問題表現手法、および/または特定のソリューション手法に特化したプログラミング言語または仕様言語です。 誰かがあなたがそれをどのように実装したか、または特定のシナリオでどのように役立つかについて、具体的な例を誰かに与えることはできますか?
107 terminology  dsl 

6
適切なエラーメッセージでCapybaraを使用して要素の数をアサートする方法は?
カピバラでは、次のようなことができることを知っています。 page.should have_css("ol li", :count => 2) ただし、たとえばページに一致する要素が1つしかない場合、エラーはあまり説明的ではありません。 1) initial page load shows greetings Failure/Error: page.should have_css("ol li", :count => 2) expected css "ol li" to return something このかなりあいまいなエラーメッセージの代わりに、エラー出力が「「ol li」と一致する場合、期待される:2、見つかった:1」のようになるようにアサーションを記述する方法はありますか。明らかに、私はそのような振る舞いのために自分でカスタムロジックを作ることができました-私はこれを「箱から出して」行う方法があるかどうか尋ねていますか? その価値のために、私はSeleniumドライバーとRSpecを使用しています。
86 rspec  dsl  capybara 

13
Android Studio Gradle DSLメソッドが見つかりません: 'android()' —エラー(17,0)
Android Studioでプロジェクトを実行しようとしていますが、エラーが以下に表示されます。 私はこれを実行するためだけに多くの情報源をたどり、ここで終わりましたが、他に何をすべきかわかりません。 このプロジェクトを実行するように構成するにはどうすればよいですか? build.gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' } } allprojects { repositories { mavenCentral() } } android { compileSdkVersion 19 buildToolsVersion "19.1" } settings.gradle: include ':app' local.properties: sdk.dir=C\:\\Users\\KJA\\AppData\\Local\\Android\\sdk …

5
「メジャーC」ではなく「Cメジャー」と書く機会はありますか?
音楽プロジェクトで小さな美的問題に遭遇し、しばらくの間悩まされてきました。 タイプがdata Key = C | D | ...ありScale、a Keyとa からを構築できModeます。Mode例えば、Aメジャーとマイナースケールを区別します。 Modeタイプを関数Keyto からとして定義できますScale。その場合、モードには小文字の名前が付き(これで問題ありません)、次のようなスケールを取得できます。 aScale = major C しかし、ミュージシャンはこのように話しません。彼らはこのスケールをメジャーCスケールではなく、Cメジャースケールと呼びます。 私が欲しいもの 理想的には書きたい aScale = C major これはまったく可能ですか? 私が試したもの からa Keyを作成する関数を作成できるので、ScaleMode aScale = c Major しかし、キーをスケールの構築に限定することはできません。それらは他のものにも必要です(例えば、コードの構築)。またKey、のインスタンスである必要がありますShow。 追加の関数(または値コンストラクター)を使用する場合、Modeその後に置くことができKeyます。 aScale = scale C major と scale :: Key -> Mode -> Scale しかし、余分な単語スケールは、その名前に反して騒々しく見え、scale実際にはスケールとは関係ありません。インテリジェントな部分はにありmajor、scale本当にただflip ($)です。 よりインテリジェントである必要があることnewtype …
39 haskell  dsl 

3
変数を渡すbeetwen groovyファイル
Jenkinsの多くのジョブをDSLプラグインで管理しています。そのプラグインは.groovy定義を使用しているので、誰かがJenkinsを使用していなくても、groovyを使用すると役立つ場合があると思います。 一般的に、Groovyファイル、JSON、YAMLなど、追加のファイルを作成します。重要なのは、そのファイルを.groovyファイルに関連付ける可能性です。 そのファイルでは、たとえばアドレスIPなどの変数(文字列のみ)を定義しています。 ip_gitlab: 1.2.3.4 default_user: admin 私のgroovyファイルでは、これらの変数を使用できるようにしたいと考えています。 そのアプローチはグルービーで可能ですか?
9 java  jenkins  groovy  dsl 

3
カスタムDSLクエリのようなSQLをElasticSearchに変換しますか?
私たちは、antlr4を使用してMysqlに似た独自のクエリ言語を構築しています。を使用する場合を除いてwhere clause、つまり、ユーザーはselect/fromステートメントを入力しません。 文法を作成し、golangでレクサー/パーサー/リスナーを生成することができました。 文法ファイルEsDslQuery.g4の下: grammar EsDslQuery; options { language = Go; } query : leftBracket = '(' query rightBracket = ')' #bracketExp | leftQuery=query op=OR rightQuery=query #orLogicalExp | leftQuery=query op=AND rightQuery=query #andLogicalExp | propertyName=attrPath op=COMPARISON_OPERATOR propertyValue=attrValue #compareExp ; attrPath : ATTRNAME ('.' attrPath)? ; fragment ATTR_NAME_CHAR : '-' | '_' …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.