Xsemantics is a DSL (implemented in Xtext itself) for writing type systems, reduction rules, interpreters (and in general relation rules) for languages implemented in Xtext. It then generates Java code that can be used in your language implemented in Xtext for scoping and validation (it can also generate a validator in Java).
Xsemantics is the successor of XTypeS, and completely replaces it (and it is not compatible with XTypeS syntax).
With respect to XTypeS, Xsemantics provides more features:
- complete access to Java types
- rich syntax for rules, by relying on Xtext’s Xbase (thus you basically have a richer Java syntax)
- Java code generation takes place using Eclipse building mechanism
- You can write any kind of rules, not only type systems, but also operational semantics rules (e.g., for the interpreter), etc.
- Rules are not limited to exactly two parameters