summaryrefslogtreecommitdiff
path: root/old
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2019-02-08 21:52:01 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2019-02-08 21:52:01 +0100
commitcf4599dd0f78f984fbacbb0a57eb07eb75b80910 (patch)
tree1b3c441f1565b954d02cbc00f02142e26bd612ff /old
parent8186616a41e730aeda49c82309aaafa0134dd03d (diff)
downloadcompilertests-cf4599dd0f78f984fbacbb0a57eb07eb75b80910.tar.gz
compilertests-cf4599dd0f78f984fbacbb0a57eb07eb75b80910.tar.bz2
some work on LHS/RHS in assignment with char arrays
Diffstat (limited to 'old')
-rw-r--r--old/minie.ebnf9
1 files changed, 6 insertions, 3 deletions
diff --git a/old/minie.ebnf b/old/minie.ebnf
index ab0ace1..04c1415 100644
--- a/old/minie.ebnf
+++ b/old/minie.ebnf
@@ -5,14 +5,17 @@ Character = Digit | Letter | "!" | " " | "#" | "$" | "%" | "'" | "(" | ")" | "*
Number = Digit { Digit } .
String = """ { Character | """ """ } """ | "'" .
Identifier = Letter { Letter | Digit } .
-QualifiedIdentifier = Identifier [ "." Identifier ];
-Factor = [ "+" | "-" ] Number | String | QualifiedIdentifier | "(" Expression ")" | ( "not" Factor ) .
+QualifiedIdentifier = Identifier [ "." Identifier ] .
+Factor = [ "+" | "-" ] Number | String | Designator | "(" Expression ")" | ( "not" Factor ) .
+Designator = QualifiedIdentifier { Selector } .
+Selector = ArrayDereference .
+ArrayDereference = "[" Expression "]" .
Term = Factor { ( "*" | "/" | "and" ) Factor } .
SimpleExpression = Term { ( "+" | "-" | "or" ) Term } .
RelationalOperator = "=" | "<>" | "<" | ">" | "<=" | ">=" .
Expression = SimpleExpression [ RelationOperator SimpleExpression ].
VariableName = Identifier .
-Assignment = VariableName ":=" Expression .
+Assignment = Designator ":=" Expression .
StatementList = Statement { ";" Statement }
IfStatement = "if" Condition "do" StatementList "else" StatementList "end" .
ParameterList = "(" [ Expression { "," Expression } ] ")" .