Merge branch 'master' of github.com:Araq/Nimrod

This commit is contained in:
Araq
2011-04-05 00:34:59 +02:00
2 changed files with 19 additions and 2 deletions

View File

@@ -765,8 +765,8 @@ proc parseExprStmt(p: var TParser): PNode =
addSon(result, a)
getTok(p)
skipComment(p, result)
if (p.tok.tokType == tkInd) or
not (p.tok.TokType in {tkOf, tkElif, tkElse, tkExcept}):
if p.tok.tokType == tkSad: getTok(p)
if not (p.tok.TokType in {tkOf, tkElif, tkElse, tkExcept}):
addSon(result, parseStmt(p))
while true:
if p.tok.tokType == tkSad: getTok(p)

View File

@@ -0,0 +1,17 @@
import macros
macro case_token(n: stmt): stmt =
# creates a lexical analyzer from regular expressions
# ... (implementation is an exercise for the reader :-)
nil
case_token: # this colon tells the parser it is a macro statement
of r"[A-Za-z_]+[A-Za-z_0-9]*":
return tkIdentifier
of r"0-9+":
return tkInteger
of r"[\+\-\*\?]+":
return tkOperator
else:
return tkUnknown
case_token: inc i