From 32a55dacda60d149e996cce440fde58ad64c2c8a Mon Sep 17 00:00:00 2001 From: Sergey Vartanov Date: Sat, 19 Aug 2023 23:54:09 +0400 Subject: [PATCH] Add preliminary ANTLR 4 grammar --- grammar/Moire.g4 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 grammar/Moire.g4 diff --git a/grammar/Moire.g4 b/grammar/Moire.g4 new file mode 100644 index 0000000..705eaa7 --- /dev/null +++ b/grammar/Moire.g4 @@ -0,0 +1,22 @@ +/** + * Grammar for Moire markup language. + * + * @author Sergey Vartanov + * @since 2 September 2022 + */ +grammar Moire; + +document : markup EOF ; +markup : ( tag | TEXT | WHITESPACE | escapedCharacter | DELIMITER )+ ; +tag : TAG_NAME ( WHITESPACE? argument )* ; +argument : CURLY_OPEN markup CURLY_CLOSE ; +escapedCharacter : BACKSLASH (BACKSLASH | CURLY_OPEN | CURLY_CLOSE) ; + +DELIMITER : '\n\n' ; +BACKSLASH : '\\' ; +CURLY_OPEN : '{' ; +CURLY_CLOSE : '}' ; +fragment IDENTIFIER : [A-Za-z0-9_]+; +TAG_NAME: BACKSLASH IDENTIFIER; +WHITESPACE : [ \t\n\r]+; +TEXT : [A-Za-z. \n\t\r]+; \ No newline at end of file