From 92ad2bc118809bfd4bc8d4286bef5fbf2fd551d5 Mon Sep 17 00:00:00 2001 From: Emi Simpson Date: Thu, 10 Mar 2022 20:28:55 -0500 Subject: [PATCH] Added an EBNF grammar --- grammar.ebnf | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 grammar.ebnf diff --git a/grammar.ebnf b/grammar.ebnf new file mode 100644 index 0000000..eec73ca --- /dev/null +++ b/grammar.ebnf @@ -0,0 +1,69 @@ + ::= { DeclarationStart } + + ::= Type Symbol [ ] { Symbol } Assign { VBar } + | Struct Symbol { Symbol } Assign { } + | Trait Symbol [ ] [ On ] Needs { } + | Impl Symbol [ ] On Colon { } + | Symbol + + ::= Symbol { } + + ::= [ { Comma } Aro ] + + ::= { } + + ::= + | OpenParen CloseParen + + ::= Symbol [ OpenSquareBracket CloseSquareBracket ] + + ::= Int Range Int + | Int + + ::= Dot Symbol Colon + + ::= OpenSouareBracket { , } CloseSquareBracket + ::= Symbol Colon + + ::= Dot Symbol { Symbol } Assign + + ::= Colon + | { Symbol } Assign + + + + + ::= { } + | If + | { } In + | + ::= Literal + | { } + | OpenParen CloseParen + + ::= Symbol { Dot Symbol } + + ::= Let Symbol Assign + + ::= Is { Comma } [ Comma ] + | Then Else + + ::= Aro + + + ::= { } + ::= { } + ::= { } + ::= { } + ::= { } + ::= Mult | Div | Mod + ::= Add | Sub + ::= Eq | NEq | LessThan | GreaterThan + ::= LAnd + ::= LOr + + ::= Symbol + | Literal + ::= { } + | { ::= Dot Symbol Assign