grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "org/example/mydsl/MyDsl"
Model:
{Model}
'{' statements+=Statement* '}';
Statement:
expr=Expression;
Expression:
AssignmentExpression;
AssignmentExpression:
ComparisonExpression (=>({BinaryExpression.lhs=current} operator=OpAssign)
rhs=AssignmentExpression)*;
OpAssign:
'=' | '<' '<' '=';
ComparisonExpression:
Primary (=>({BinaryExpression.lhs=current} operator=OpComp)
rhs=Primary)*;
OpComp:
'<' | '>' | '<' '=' | '>=' | '==';
Primary:
name=ID;