Hot answers tagged

5

You are touching upon the difference between an External DSL (a separate language with its own syntax and semantics) and an Internal DSL (a way to creatively design an API in such a way that using it feels like a different language, even though it is actually still bound by the syntax and semantics of the "host" language). You will also sometimes hear the ...


4

This isn't a DSL, it's simply an API. An API provides a set of building blocks for use within the language the application programmer is using. If it's a set of building blocks for use within another programming language that another programmer will be using, it's a set of bindings. A domain-specific language is a newly invented language, usually one that ...


2

If what you are trying to do is present a single endpoint to many APIs, you might find some value in Netflix' Falcor project. Falcor is not a query engine. It is a library for "efficient data fetching." It is one example of a growing set of tools delivering "Demand Driven Architectures" -- alternatives to traditional rest services that allow the author of a ...


2

This isn't really specific to Scala DSLs. You have the same problem with the traditional Builder pattern, when you want a builder that needs to be given certain things. Instead of execution order it is then a dependency. For example, you want a builder that can build either ProductA or ProductB, but when you choose ProductA you must specify a delivery ...


1

Are there any other problems, aside from the mentioned data consistency issue, I should be aware of when I save data like this in a relational database? Source control. Is there a better option for persistence? Maybe? I mean, what you're talking about is scripting. Normally, scripts are deployed alongside the app and follow the more traditional ...


1

Yes, there is exactly that. You can provide your quickfix as a semantic modification to the EMF resource. Xtext's serialization mechanism will figure out how to convert your changes to the AST back to text. Something along these lines should do the trick: @Fix(MISSING_SUPERTYPE_ID) public void fixupSupertype(final Issue issue, IssueResolutionAcceptor ...



Only top voted, non community-wiki answers of a minimum length are eligible