Rascal is an open source grammar language created in 2013.
#575on PLDB | 11Years Old | 722Repos |
git clone https://github.com/usethesource/rascal
Rascal is an experimental domain specific language for metaprogramming, such as static code analysis, program transformation and implementation of domain specific languages. It is a general meta language in the sense that it does not have a bias for any particular software language. It includes primitives from relational calculus and term rewriting. Read more on Wikipedia...
module Syntax
extend lang::std::Layout;
extend lang::std::Id;
start syntax Machine = machine: State+ states;
syntax State = @Foldable state: "state" Id name Trans* out;
syntax Trans = trans: Id event ":" Id to;