diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/grammar.md | 39 | ||||
| -rw-r--r-- | docs/precedence.md | 17 |
2 files changed, 0 insertions, 56 deletions
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 ")" ; -``` diff --git a/docs/precedence.md b/docs/precedence.md deleted file mode 100644 index 32cc5de..0000000 --- a/docs/precedence.md +++ /dev/null @@ -1,17 +0,0 @@ -Operating precedence in sloth from highest to lowest. - -| Name | Operators | Associates | -| -------------- | --------- | ---------- | -| parentheses | () | Left | -| member access | . ! !! ?. | Left | -| defaulting | ?: | Right | -| function call | () | Left | -| unary | ! + - | Right | -| multiplicative | \* / % | Left | -| additive | + - | Left | -| bitwise shift | << >> | Left | -| comparison | < > <= >= | Left | -| equality | == != | Left | -| bitwise | & ^ \| | Left | -| logical and | && | Left | -| logical or | \|\| | Left | |
