summary refs log tree commit diff stats
path: root/doc/grammar.txt
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2021-08-24 21:50:40 -0700
committerGitHub <noreply@github.com>2021-08-25 06:50:40 +0200
commit3aa16c1de00c723d48e48fe3fdf07a276d1b4b6a (patch)
treed4547a8ab662981357d06334bf46f935f18e65d4 /doc/grammar.txt
parent3d1bba04ab1092630983695734d6984ddff4688c (diff)
downloadNim-3aa16c1de00c723d48e48fe3fdf07a276d1b4b6a.tar.gz
fix RFC #341: dot-like operators are now parsed with same precedence as `.` (#18711)
* fix RFC #341: dot-like operators are now parsed with same precedence as `.`

* fixup

* [skip ci] address comment in changelog

* address comment

* update grammmar

* add manual entry

* fixup

* -d:nimPreviewDotLikeOps

* address comment to unblock PR: move nimPreviewDotLikeOps out of config/config.nims
Diffstat (limited to 'doc/grammar.txt')
-rw-r--r--doc/grammar.txt2
1 files changed, 2 insertions, 0 deletions
diff --git a/doc/grammar.txt b/doc/grammar.txt
index d4f4a0515..f58621b97 100644
--- a/doc/grammar.txt
+++ b/doc/grammar.txt
@@ -29,6 +29,7 @@ exprList = expr ^+ comma
 exprColonEqExprList = exprColonEqExpr (comma exprColonEqExpr)* (comma)?
 dotExpr = expr '.' optInd (symbol | '[:' exprList ']')
 explicitGenericInstantiation = '[:' exprList ']' ( '(' exprColonEqExpr ')' )?
+dotLikeExpr = expr DOTLIKEOP optInd symbol
 qualifiedIdent = symbol ('.' optInd symbol)?
 setOrTableConstr = '{' ((exprColonEqExpr comma)* | ':' ) '}'
 castExpr = 'cast' ('[' optInd typeDesc optPar ']' '(' optInd expr optPar ')') /
@@ -56,6 +57,7 @@ tupleConstr = '(' optInd (exprColonEqExpr comma?)* optPar ')'
 arrayConstr = '[' optInd (exprColonEqExpr comma?)* optPar ']'
 primarySuffix = '(' (exprColonEqExpr comma?)* ')'
       | '.' optInd symbol generalizedLit?
+      | DOTLIKEOP optInd symbol generalizedLit?
       | '[' optInd exprColonEqExprList optPar ']'
       | '{' optInd exprColonEqExprList optPar '}'
       | &( '`'|IDENT|literal|'cast'|'addr'|'type') expr # command syntax