diff options
| author | Robert Griesemer <gri@golang.org> | 2016-10-03 13:24:56 -0700 |
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2016-10-04 22:44:42 +0000 |
| commit | 776a90100f1f65fcf54dfd3d082d657341bdc323 (patch) | |
| tree | 506dfb23c85d293a9c5259d4d47afbfa8662144a /src | |
| parent | c1e267cc734135a66af8a1a5015e572cbb598d44 (diff) | |
| download | go-776a90100f1f65fcf54dfd3d082d657341bdc323.tar.xz | |
go/scanner, go/token: recognize => (ALIAS) token
For #16339.
Change-Id: I0f83e46f13b5c8801aacf48fc8b690049edbbbff
Reviewed-on: https://go-review.googlesource.com/30210
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/go/scanner/scanner.go | 2 | ||||
| -rw-r--r-- | src/go/scanner/scanner_test.go | 1 | ||||
| -rw-r--r-- | src/go/token/token.go | 8 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/go/scanner/scanner.go b/src/go/scanner/scanner.go index ce660c71d5..bf63e814aa 100644 --- a/src/go/scanner/scanner.go +++ b/src/go/scanner/scanner.go @@ -731,7 +731,7 @@ scanAgain: case '>': tok = s.switch4(token.GTR, token.GEQ, '>', token.SHR, token.SHR_ASSIGN) case '=': - tok = s.switch2(token.ASSIGN, token.EQL) + tok = s.switch3(token.ASSIGN, token.EQL, '>', token.ALIAS) case '!': tok = s.switch2(token.NOT, token.NEQ) case '&': diff --git a/src/go/scanner/scanner_test.go b/src/go/scanner/scanner_test.go index 0d21905166..d1f2158898 100644 --- a/src/go/scanner/scanner_test.go +++ b/src/go/scanner/scanner_test.go @@ -121,6 +121,7 @@ var tokens = [...]elt{ {token.LAND, "&&", operator}, {token.LOR, "||", operator}, {token.ARROW, "<-", operator}, + {token.ALIAS, "=>", operator}, {token.INC, "++", operator}, {token.DEC, "--", operator}, diff --git a/src/go/token/token.go b/src/go/token/token.go index 865f63f4a1..7ad4290fb9 100644 --- a/src/go/token/token.go +++ b/src/go/token/token.go @@ -121,6 +121,10 @@ const ( TYPE VAR keyword_end + + // Alias support - must add at end to pass Go 1 compatibility test + + ALIAS // => ) var tokens = [...]string{ @@ -221,6 +225,8 @@ var tokens = [...]string{ SWITCH: "switch", TYPE: "type", VAR: "var", + + ALIAS: "=>", } // String returns the string corresponding to the token tok. @@ -300,7 +306,7 @@ func (tok Token) IsLiteral() bool { return literal_beg < tok && tok < literal_en // IsOperator returns true for tokens corresponding to operators and // delimiters; it returns false otherwise. // -func (tok Token) IsOperator() bool { return operator_beg < tok && tok < operator_end } +func (tok Token) IsOperator() bool { return operator_beg < tok && tok < operator_end || tok == ALIAS } // IsKeyword returns true for tokens corresponding to keywords; // it returns false otherwise. |
