diff options
Diffstat (limited to 'lib/grammar.txt')
-rw-r--r-- | lib/grammar.txt | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/lib/grammar.txt b/lib/grammar.txt deleted file mode 100644 index d7208ef..0000000 --- a/lib/grammar.txt +++ /dev/null @@ -1,100 +0,0 @@ -location: - | LOCATION_START EOL* - line_statement* - LOCATION_END EOL* - EOF - -line_statement: - | COMMENT EOL+ // A comment - | COLUMN IDENT EOL* // A location - | instruction, line_sep - | inline_action line_sep - | ACT expression COLUMN EOL+ // ACT … END ACT - line_statement* - END ACT? // Yes you can have END or END ACT - line_sep - | IF expression COLUMN EOL+ // IF … END IF - line_statement* - elif* - else - END IF? // Yes you can have END or END IF - line_sep - -elif: - | ELIF - expression COLUMN EOL+ - line_statement* - -else: - | ELSE EOL+ - line_statement* - | - -line_sep: - | EOL+ - | AMPERSAND+ EOL* - - -instruction: - | expression - | let_assignation - | keyword argument(expression) - -keyword: - | STAR KEYWORD // A keyword starting with * - | KEYWORD - -let_assignation: - | assignation - variable - assignation_operator - expression - -assignation: - | - | LET - | SET - -assignation_operator: - | EQUAL - | INCR // += - | DECR // -= - -inline_action: - | ACT expression COLUMN // There is a recursive code here - | IF expression COLUMN // Because ACT: can contains an IF: etc - (ELSE, instruction)? // complicated to flatten here. - -expression: - | delimited(l_paren, expression, r_paren) - | unary_operator expression - | expression binary_operator expression - | literal - | integer - | variable - | function argument(expression) - -unary_operator: - | OBJ - | LOC - | NO - | MINUS - | PLUS - -binary_operator: - | EQUAL - | LT GT // Different - | EXCLAMATION // Neg, not a comment here - | PLUS - | MINUS - | STAR // Not the first char of keyword here - | DIV - | MOD - | GT - | LT - | GT EQUAL - | LT EQUAL - | EQUAL GT // Alternative syntax - | EQUAL LT // Alternative syntax - | AND - | OR |