diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-06-19 13:15:10 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-06-19 13:15:10 -0400 |
| commit | 017e2e2eba3ef0c15521724c8bc8f57854ffd037 (patch) | |
| tree | 735791a370223ea2297159bb7546d59f99152ca2 | |
| parent | 2d6e5a6ad2fcc77289fb0a8fd34b0bf4cdbd035d (diff) | |
Small fixes
| -rw-r--r-- | spec/grammar.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/spec/grammar.md b/spec/grammar.md index 8135f70a..f375105a 100644 --- a/spec/grammar.md +++ b/spec/grammar.md @@ -2,7 +2,7 @@ BQN's grammar is given below. All terms except `BraceFunc` `_braceMod` `_braceCo The symbols `v`, `F`, `_m`, and `_c_` are identifier tokens with value, function, modifier, and composition classes respectively. Similarly, `vl`, `Fl`, `_ml`, and `_cl_` refer to value literals (numeric and character literals, or primitives) of those classes. While names in the BNF here follow the identifier naming scheme, this is informative only: syntactic classes are no longer used after parsing and cannot be inspected in a running program. -A program is a list of statements. Almost all statements are expressions. However, valueless results stemming from "·", or "𝕨" in a monadic brace function, can be used as statements but not expressions. +A program is a list of statements. Almost all statements are expressions. However, valueless results stemming from `·`, or `𝕨` in a monadic brace function, can be used as statements but not expressions. PROGRAM = ⋄? ( ( STMT ⋄ )* STMT ⋄? )? STMT = EXPR | nothing @@ -19,7 +19,7 @@ Here we define the "atomic" forms of functions and operators, which are either s list = "⟨" ⋄? ( ( EXPR ⋄ )* EXPR ⋄? )? "⟩" value = atom | ANY ( "‿" ANY )+ -Starting at the highest-order objects, modifiers and compositions have fairly simple syntax. In most cases the syntax for `←` and `↩` is the same, but some special forms are defined only for one of them. +Starting at the highest-order objects, modifiers and compositions have fairly simple syntax. In most cases the syntax for `←` and `↩` is the same, but only `↩` can be used for modified assignment. ASGN = "←" | "↩" _cmpExp_ = _comp_ |
