assignments support ': stmtList' like let/var do
This commit is contained in:
parent
9aeccda262
commit
e21ca54b11
3 changed files with 10 additions and 3 deletions
|
|
@ -1208,7 +1208,7 @@ proc parseMacroColon(p: var TParser, x: PNode): PNode =
|
||||||
|
|
||||||
proc parseExprStmt(p: var TParser): PNode =
|
proc parseExprStmt(p: var TParser): PNode =
|
||||||
#| exprStmt = simpleExpr
|
#| exprStmt = simpleExpr
|
||||||
#| (( '=' optInd expr )
|
#| (( '=' optInd expr colonBody? )
|
||||||
#| / ( expr ^+ comma
|
#| / ( expr ^+ comma
|
||||||
#| doBlocks
|
#| doBlocks
|
||||||
#| / macroColon
|
#| / macroColon
|
||||||
|
|
@ -1219,6 +1219,12 @@ proc parseExprStmt(p: var TParser): PNode =
|
||||||
getTok(p)
|
getTok(p)
|
||||||
optInd(p, result)
|
optInd(p, result)
|
||||||
var b = parseExpr(p)
|
var b = parseExpr(p)
|
||||||
|
if p.tok.tokType == tkColon and p.tok.indent < 0:
|
||||||
|
if b.kind != nkEmpty:
|
||||||
|
let call = makeCall(b)
|
||||||
|
call.add parseDoBlock(p, parLineInfo(p))
|
||||||
|
parseDoBlocks(p, call)
|
||||||
|
b = call
|
||||||
addSon(result, a)
|
addSon(result, a)
|
||||||
addSon(result, b)
|
addSon(result, b)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ macroColon = ':' stmt? ( IND{=} 'of' exprList ':' stmt
|
||||||
| IND{=} 'except' exprList ':' stmt
|
| IND{=} 'except' exprList ':' stmt
|
||||||
| IND{=} 'else' ':' stmt )*
|
| IND{=} 'else' ':' stmt )*
|
||||||
exprStmt = simpleExpr
|
exprStmt = simpleExpr
|
||||||
(( '=' optInd expr )
|
(( '=' optInd expr colonBody? )
|
||||||
/ ( expr ^+ comma
|
/ ( expr ^+ comma
|
||||||
doBlocks
|
doBlocks
|
||||||
/ macroColon
|
/ macroColon
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@ template y(val, body): untyped =
|
||||||
proc mana =
|
proc mana =
|
||||||
let foo = x:
|
let foo = x:
|
||||||
echo "boo"
|
echo "boo"
|
||||||
var foo2 = y 3:
|
var foo2: int
|
||||||
|
foo2 = y 3:
|
||||||
echo "3"
|
echo "3"
|
||||||
echo foo, " ", foo2
|
echo foo, " ", foo2
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue