From ec5abc12b76c4e58b16240a743d139243d7f22b4 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Thu, 28 Mar 2019 11:17:24 +0100 Subject: [PATCH] add grammar --- grammar.txt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 grammar.txt diff --git a/grammar.txt b/grammar.txt new file mode 100644 index 0000000..2072dbb --- /dev/null +++ b/grammar.txt @@ -0,0 +1,23 @@ +prog := (tdef | func)* + +tdef := '::' id id* '=' tcons ';' +tcons := id type* ('|' id type*)* +type := 'Int' + | 'Bool' + | id id* + | '(' type ')' + +func := funid id* '=' expr ';' +funid := id | op ('ifxr' | 'ifxl') num +expr := expr expr + | expr op expr + | num + | 'True' | 'False' + | '(' (expr | op) ')' + | 'code'? id + | '\\' id '.' expr + +num := (0 | 1 | .. | 9)* +id := (a | b | .. | z | A | B | .. | Z)* +op := '!' | '@' | '#' | '$' | '%' | '^' | '&' | '*' | '=' | '+' | '/' | '?' + | '-' | '_' | '|' | ''' | '\' | '"' | '<' | '>' | '.' | ':' -- 2.20.1