aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-06-19 22:58:38 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-06-19 22:58:38 -0400
commit412a732271851b976eafd3d69b2a361a847a7f6c (patch)
treec5fec545924fa1105a9996abce7ef48e918f4713
parente6dcd2bbfa38a677a12272509d656e4f2b16862f (diff)
Fix nesting issues in list assignment
-rw-r--r--spec/grammar.md11
1 files changed, 7 insertions, 4 deletions
diff --git a/spec/grammar.md b/spec/grammar.md
index 8d5b5e75..5d30774f 100644
--- a/spec/grammar.md
+++ b/spec/grammar.md
@@ -49,10 +49,13 @@ Value expressions are complicated by the possibility of list assignment. We also
| ( value | nothing )? Derv arg
nothing = "·"
| ( value | nothing )? Derv nothing
- LHS_ATOM = v | F | _m | _c_ | "(" lhs ")"
- lhs = v
- | "⟨" ⋄? ( ( lhs ⋄ )* lhs ⋄? )? "⟩"
- | LHS_ATOM ( "‿" LHS_ATOM )+
+ LHS_ANY = lhsValue | F | _m | _c_
+ LHS_ATOM = LHS_ANY | "(" lhsStr ")"
+ LHS_ELT = LHS_ANY | lhsStr
+ lhsValue = v
+ | "⟨" ⋄? ( ( LHS_ELT ⋄ )* LHS_ELT ⋄? )? "⟩"
+ lhsStr = LHS_ATOM ( "‿" LHS_ATOM )+
+ lhs = lhsValue | lhsStr
valExpr = arg
| v ASGN valExpr
| v Derv "↩" valExpr ⍝ Modified assignment