From 882ba15c02235085d424e4e86a5080711a132b7d Mon Sep 17 00:00:00 2001 From: brettlangdon Date: Mon, 14 Sep 2015 11:42:05 -0400 Subject: [PATCH] add skeleton for async/await --- scanner/scanner.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/scanner/scanner.go b/scanner/scanner.go index 1e2f74d..fa525a0 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -19,6 +19,8 @@ type Scanner struct { currentLine int currentColumn int + + asyncDef bool } func NewScanner(r io.Reader) *Scanner { @@ -163,6 +165,26 @@ func (scanner *Scanner) NextToken() *token.Token { pos = scanner.nextPosition() } scanner.unreadPosition(pos) + + // Check for async/await + // literal := positions.String() + // if literal == "async" || literal == "await" { + // if scanner.asyncDef { + // switch literal { + // case "async": + // return positions.AsToken(token.ASYNC) + // case "await": + // return positions.AsToken(token.AWAIT) + // } + // } else if literal == "async" { + // nextToken := scanner.NextToken() + // if nextToken.ID == token.NAME && nextToken.Literal == "def" { + // scanner.asyncDef = true + // return positions.AsToken(token.ASYNC) + // } + // } + // } + return positions.AsToken(token.NAME) case ch == '\n': return positions.AsToken(token.NEWLINE)