From 2970520a9592b5c6d45291f54073552a474b71b4 Mon Sep 17 00:00:00 2001 From: Cody Date: Thu, 30 Mar 2023 02:44:54 -0500 Subject: Restructure --- docs/grammar.md | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 docs/grammar.md (limited to 'docs/grammar.md') diff --git a/docs/grammar.md b/docs/grammar.md deleted file mode 100644 index d172254..0000000 --- a/docs/grammar.md +++ /dev/null @@ -1,39 +0,0 @@ -Formal grammar definition for Sloth. - -``` -program → statement* ; -block → "{" statement* "}" - -statement → exprStmt - | valStmt - | varStmt - | returnStmt - | printStmt - | functionStmt - | ifStmt - | forStmt ; - -exprStmt → expression ";" ; -valStmt → "val" IDENTIFIER "=" expression ";" ; -varStmt → "var" IDENTIFIER "=" expression ";" ; -returnStmt → "return" expression ";" ; -printStmt → "print" expression ";" ; - -functionStmt → "fn" IDENTIFIER "(" (IDENTIFIER ":" IDENTIFIER)* ")" block ; -ifStmt → "if" expression block ; -forStmt → "for" IDENTIFIER "in" expression ".." expression block ; - -expression → logical_or ; - -logical_or → logical_and ( "||" logical_and )* ; -logical_and → equality ( "&&" equality )* ; -equality → comparison ( ( "!=" | "==" ) comparison )* ; -comparison → bitwise_shift ( ( "<" | ">" | "<=" | ">=" ) bitwise_shift )* ; -bitwise_shifting → additive ( ( "<<" | ">>" ) additive )* ; -additive → multiplicative ( ( "+" | "-" ) multiplicative )* ; -multiplicative → unary ( ( "*" | "/" | "%" ) unary )* ; -unary → ( "!" | "+" | "-" ) unary | call ; - -call → primary ( "(" arguments? ")" )* ; -primary → "true" | "false" | NUMBER | STRING | IDENTIFIER | "(" expression ")" ; -``` -- cgit v1.2.3