aboutsummaryrefslogtreecommitdiff
path: root/lib/grammar.txt
diff options
context:
space:
mode:
authorChimrod <>2023-10-06 08:35:56 +0200
committerChimrod <>2023-10-06 08:35:56 +0200
commit97ab5c9a21166f0bffee482210d69877fd6809fa (patch)
treed1fa44000fa07631edc8924a90020f2cfe637263 /lib/grammar.txt
parent40f4dbe7844725e0ab07f03f25c35f55b4699b46 (diff)
Moved qparser and syntax in the library folder
Diffstat (limited to 'lib/grammar.txt')
-rw-r--r--lib/grammar.txt100
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