grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
Model:
methods+=Method*;
Method: 'method' name=ID fireAndForget?=FireAndForget? '(' methodArguments+=MethodArgument? (',' methodArguments+=MethodArgument)* ')';
FireAndForget: '[fireAndForget]';
MethodArgument: InArgument | OutArgument | InOutArgument;
InArgument: direction='in' type=PATH name=ID;
OutArgument: direction='out' type=PATH name=ID;
InOutArgument: direction='inout' type=PATH name=ID;
terminal fragment DIGIT: '0'..'9';
terminal fragment LOWERCASE_LETTER: 'a'..'z';
terminal fragment UPPERCASE_LETTER: 'A'..'Z';
terminal ID: (LOWERCASE_LETTER|UPPERCASE_LETTER|'_') (LOWERCASE_LETTER|UPPERCASE_LETTER|DIGIT|'_')*;
terminal PATH: ('/' ID)+;