JSTQL-JS-Transform/didactic-chainsaw-dsl/src/language/js-transform-lang.langium

33 lines
1,010 B
Text
Raw Normal View History

grammar JsTransformLang
entry Model:
(proposals+=Proposal)*;
Proposal:
'proposal' name=ID "{"
"applicable" "to" "{"
code=RICH_TEXT
"}"
"replace" "with" "{"
"}"
2023-12-06 16:34:00 +00:00
"}";
hidden terminal WS: /\s+/;
terminal ID: /[_a-zA-Z][\w_]*/;
terminal fragment IN_RICH_STRING:
"''" !('«'|"'")
| "'" !('«'|"'");
//| !('«'|"'");
terminal STRING: /"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/;
hidden terminal ML_COMMENT: /\/\*[\s\S]*?\*\//;
hidden terminal SL_COMMENT: /\/\/[^\n\r]*/;
terminal RICH_TEXT: "'''" IN_RICH_STRING* ("'''"| ("'" "'"?)? );
terminal RICH_TEXT_START: "'''" IN_RICH_STRING* ("'" "'"?)? '«';
terminal RICH_TEXT_END: '»' IN_RICH_STRING* ("'''"| ("'" "'"?)? );
terminal RICH_TEXT_INBETWEEN: '»' IN_RICH_STRING* ("'" "'"?)? '«';
terminal COMMENT_RICH_TEXT_INBETWEEN: "««" !('\n'|'\r')* ('\r'? '\n' IN_RICH_STRING* ("'" "'"?)? '«')?;
terminal COMMENT_RICH_TEXT_END: "««" !('\n'|'\r')* (('\r'? '\n' IN_RICH_STRING* ("'''"| ("'" "'"?)? )) );