mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-25 04:15:09 +00:00
fixes a small bug concerning semicolons for top level statements
This commit is contained in:
@@ -1980,15 +1980,17 @@ proc parseTopLevelStmt(p: var TParser): PNode =
|
||||
## top-level statement or emptyNode if end of stream.
|
||||
result = ast.emptyNode
|
||||
while true:
|
||||
if p.tok.indent != 0:
|
||||
if p.tok.indent != 0:
|
||||
if p.firstTok and p.tok.indent < 0: discard
|
||||
else: parMessage(p, errInvalidIndentation)
|
||||
elif p.tok.tokType != tkSemiColon:
|
||||
parMessage(p, errInvalidIndentation)
|
||||
p.firstTok = false
|
||||
case p.tok.tokType
|
||||
of tkSemiColon:
|
||||
getTok(p)
|
||||
if p.tok.indent <= 0: discard
|
||||
else: parMessage(p, errInvalidIndentation)
|
||||
p.firstTok = true
|
||||
of tkEof: break
|
||||
else:
|
||||
result = complexOrSimpleStmt(p)
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
discard """
|
||||
output: "true"
|
||||
output: '''holla
|
||||
true'''
|
||||
"""
|
||||
|
||||
# Test top level semicolon works properly:
|
||||
import os; echo "holla"
|
||||
|
||||
# Test the new predence rules
|
||||
|
||||
proc `\+` (x, y: int): int = result = x + y
|
||||
proc `\*` (x, y: int): int = result = x * y
|
||||
|
||||
echo 5 \+ 1 \* 9 == 14
|
||||
echo 5 \+ 1 \* 9 == 6*9
|
||||
|
||||
|
||||
Reference in New Issue
Block a user