|  | // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | import 'package:analyzer/dart/ast/token.dart'; | 
|  | import 'package:analyzer/src/summary2/unlinked_token_type.dart'; | 
|  |  | 
|  | class TokensWriter { | 
|  | static UnlinkedTokenType astToBinaryTokenType(TokenType type) { | 
|  | if (type == Keyword.ABSTRACT) { | 
|  | return UnlinkedTokenType.ABSTRACT; | 
|  | } else if (type == TokenType.AMPERSAND) { | 
|  | return UnlinkedTokenType.AMPERSAND; | 
|  | } else if (type == TokenType.AMPERSAND_AMPERSAND) { | 
|  | return UnlinkedTokenType.AMPERSAND_AMPERSAND; | 
|  | } else if (type == TokenType.AMPERSAND_EQ) { | 
|  | return UnlinkedTokenType.AMPERSAND_EQ; | 
|  | } else if (type == TokenType.AS) { | 
|  | return UnlinkedTokenType.AS; | 
|  | } else if (type == Keyword.ASSERT) { | 
|  | return UnlinkedTokenType.ASSERT; | 
|  | } else if (type == Keyword.ASYNC) { | 
|  | return UnlinkedTokenType.ASYNC; | 
|  | } else if (type == TokenType.AT) { | 
|  | return UnlinkedTokenType.AT; | 
|  | } else if (type == Keyword.AWAIT) { | 
|  | return UnlinkedTokenType.AWAIT; | 
|  | } else if (type == TokenType.BACKPING) { | 
|  | return UnlinkedTokenType.BACKPING; | 
|  | } else if (type == TokenType.BACKSLASH) { | 
|  | return UnlinkedTokenType.BACKSLASH; | 
|  | } else if (type == TokenType.BANG) { | 
|  | return UnlinkedTokenType.BANG; | 
|  | } else if (type == TokenType.BANG_EQ) { | 
|  | return UnlinkedTokenType.BANG_EQ; | 
|  | } else if (type == TokenType.BANG_EQ_EQ) { | 
|  | return UnlinkedTokenType.BANG_EQ_EQ; | 
|  | } else if (type == TokenType.BAR) { | 
|  | return UnlinkedTokenType.BAR; | 
|  | } else if (type == TokenType.BAR_BAR) { | 
|  | return UnlinkedTokenType.BAR_BAR; | 
|  | } else if (type == TokenType.BAR_EQ) { | 
|  | return UnlinkedTokenType.BAR_EQ; | 
|  | } else if (type == Keyword.BREAK) { | 
|  | return UnlinkedTokenType.BREAK; | 
|  | } else if (type == TokenType.CARET) { | 
|  | return UnlinkedTokenType.CARET; | 
|  | } else if (type == TokenType.CARET_EQ) { | 
|  | return UnlinkedTokenType.CARET_EQ; | 
|  | } else if (type == Keyword.CASE) { | 
|  | return UnlinkedTokenType.CASE; | 
|  | } else if (type == Keyword.CATCH) { | 
|  | return UnlinkedTokenType.CATCH; | 
|  | } else if (type == Keyword.CLASS) { | 
|  | return UnlinkedTokenType.CLASS; | 
|  | } else if (type == TokenType.CLOSE_CURLY_BRACKET) { | 
|  | return UnlinkedTokenType.CLOSE_CURLY_BRACKET; | 
|  | } else if (type == TokenType.CLOSE_PAREN) { | 
|  | return UnlinkedTokenType.CLOSE_PAREN; | 
|  | } else if (type == TokenType.CLOSE_SQUARE_BRACKET) { | 
|  | return UnlinkedTokenType.CLOSE_SQUARE_BRACKET; | 
|  | } else if (type == TokenType.COLON) { | 
|  | return UnlinkedTokenType.COLON; | 
|  | } else if (type == TokenType.COMMA) { | 
|  | return UnlinkedTokenType.COMMA; | 
|  | } else if (type == Keyword.CONST) { | 
|  | return UnlinkedTokenType.CONST; | 
|  | } else if (type == Keyword.CONTINUE) { | 
|  | return UnlinkedTokenType.CONTINUE; | 
|  | } else if (type == Keyword.COVARIANT) { | 
|  | return UnlinkedTokenType.COVARIANT; | 
|  | } else if (type == Keyword.DEFAULT) { | 
|  | return UnlinkedTokenType.DEFAULT; | 
|  | } else if (type == Keyword.DEFERRED) { | 
|  | return UnlinkedTokenType.DEFERRED; | 
|  | } else if (type == Keyword.DO) { | 
|  | return UnlinkedTokenType.DO; | 
|  | } else if (type == TokenType.DOUBLE) { | 
|  | return UnlinkedTokenType.DOUBLE; | 
|  | // TODO(srawlins): TokenType.DOUBLE_WITH_SEPARATORS? | 
|  | } else if (type == Keyword.DYNAMIC) { | 
|  | return UnlinkedTokenType.DYNAMIC; | 
|  | } else if (type == Keyword.ELSE) { | 
|  | return UnlinkedTokenType.ELSE; | 
|  | } else if (type == Keyword.ENUM) { | 
|  | return UnlinkedTokenType.ENUM; | 
|  | } else if (type == TokenType.EOF) { | 
|  | return UnlinkedTokenType.EOF; | 
|  | } else if (type == TokenType.EQ) { | 
|  | return UnlinkedTokenType.EQ; | 
|  | } else if (type == TokenType.EQ_EQ) { | 
|  | return UnlinkedTokenType.EQ_EQ; | 
|  | } else if (type == TokenType.EQ_EQ_EQ) { | 
|  | return UnlinkedTokenType.EQ_EQ_EQ; | 
|  | } else if (type == Keyword.EXPORT) { | 
|  | return UnlinkedTokenType.EXPORT; | 
|  | } else if (type == Keyword.EXTENDS) { | 
|  | return UnlinkedTokenType.EXTENDS; | 
|  | } else if (type == Keyword.EXTERNAL) { | 
|  | return UnlinkedTokenType.EXTERNAL; | 
|  | } else if (type == Keyword.FACTORY) { | 
|  | return UnlinkedTokenType.FACTORY; | 
|  | } else if (type == Keyword.FALSE) { | 
|  | return UnlinkedTokenType.FALSE; | 
|  | } else if (type == Keyword.FINAL) { | 
|  | return UnlinkedTokenType.FINAL; | 
|  | } else if (type == Keyword.FINALLY) { | 
|  | return UnlinkedTokenType.FINALLY; | 
|  | } else if (type == Keyword.FOR) { | 
|  | return UnlinkedTokenType.FOR; | 
|  | } else if (type == Keyword.FUNCTION) { | 
|  | return UnlinkedTokenType.FUNCTION_KEYWORD; | 
|  | } else if (type == TokenType.FUNCTION) { | 
|  | return UnlinkedTokenType.FUNCTION; | 
|  | } else if (type == Keyword.GET) { | 
|  | return UnlinkedTokenType.GET; | 
|  | } else if (type == TokenType.GT) { | 
|  | return UnlinkedTokenType.GT; | 
|  | } else if (type == TokenType.GT_EQ) { | 
|  | return UnlinkedTokenType.GT_EQ; | 
|  | } else if (type == TokenType.GT_GT) { | 
|  | return UnlinkedTokenType.GT_GT; | 
|  | } else if (type == TokenType.GT_GT_EQ) { | 
|  | return UnlinkedTokenType.GT_GT_EQ; | 
|  | } else if (type == TokenType.GT_GT_GT) { | 
|  | return UnlinkedTokenType.GT_GT_GT; | 
|  | } else if (type == TokenType.GT_GT_GT_EQ) { | 
|  | return UnlinkedTokenType.GT_GT_GT_EQ; | 
|  | } else if (type == TokenType.HASH) { | 
|  | return UnlinkedTokenType.HASH; | 
|  | } else if (type == TokenType.HEXADECIMAL) { | 
|  | return UnlinkedTokenType.HEXADECIMAL; | 
|  | // TODO(srawlins): TokenType.HEXADECIMAL_WITH_SEPARATORS? | 
|  | } else if (type == Keyword.HIDE) { | 
|  | return UnlinkedTokenType.HIDE; | 
|  | } else if (type == TokenType.IDENTIFIER) { | 
|  | return UnlinkedTokenType.IDENTIFIER; | 
|  | } else if (type == Keyword.IF) { | 
|  | return UnlinkedTokenType.IF; | 
|  | } else if (type == Keyword.IMPLEMENTS) { | 
|  | return UnlinkedTokenType.IMPLEMENTS; | 
|  | } else if (type == Keyword.IMPORT) { | 
|  | return UnlinkedTokenType.IMPORT; | 
|  | } else if (type == Keyword.IN) { | 
|  | return UnlinkedTokenType.IN; | 
|  | } else if (type == TokenType.INDEX) { | 
|  | return UnlinkedTokenType.INDEX; | 
|  | } else if (type == TokenType.INDEX_EQ) { | 
|  | return UnlinkedTokenType.INDEX_EQ; | 
|  | } else if (type == Keyword.INOUT) { | 
|  | return UnlinkedTokenType.INOUT; | 
|  | } else if (type == TokenType.INT) { | 
|  | return UnlinkedTokenType.INT; | 
|  | // TODO(srawlins): TokenType.INT_WITH_SEPARATORS? | 
|  | } else if (type == Keyword.INTERFACE) { | 
|  | return UnlinkedTokenType.INTERFACE; | 
|  | } else if (type == TokenType.IS) { | 
|  | return UnlinkedTokenType.IS; | 
|  | } else if (type == Keyword.LATE) { | 
|  | return UnlinkedTokenType.LATE; | 
|  | } else if (type == Keyword.LIBRARY) { | 
|  | return UnlinkedTokenType.LIBRARY; | 
|  | } else if (type == TokenType.LT) { | 
|  | return UnlinkedTokenType.LT; | 
|  | } else if (type == TokenType.LT_EQ) { | 
|  | return UnlinkedTokenType.LT_EQ; | 
|  | } else if (type == TokenType.LT_LT) { | 
|  | return UnlinkedTokenType.LT_LT; | 
|  | } else if (type == TokenType.LT_LT_EQ) { | 
|  | return UnlinkedTokenType.LT_LT_EQ; | 
|  | } else if (type == TokenType.MINUS) { | 
|  | return UnlinkedTokenType.MINUS; | 
|  | } else if (type == TokenType.MINUS_EQ) { | 
|  | return UnlinkedTokenType.MINUS_EQ; | 
|  | } else if (type == TokenType.MINUS_MINUS) { | 
|  | return UnlinkedTokenType.MINUS_MINUS; | 
|  | } else if (type == Keyword.MIXIN) { | 
|  | return UnlinkedTokenType.MIXIN; | 
|  | } else if (type == TokenType.MULTI_LINE_COMMENT) { | 
|  | return UnlinkedTokenType.MULTI_LINE_COMMENT; | 
|  | } else if (type == Keyword.NATIVE) { | 
|  | return UnlinkedTokenType.NATIVE; | 
|  | } else if (type == Keyword.NEW) { | 
|  | return UnlinkedTokenType.NEW; | 
|  | } else if (type == Keyword.NULL) { | 
|  | return UnlinkedTokenType.NULL; | 
|  | } else if (type == Keyword.OF) { | 
|  | return UnlinkedTokenType.OF; | 
|  | } else if (type == Keyword.ON) { | 
|  | return UnlinkedTokenType.ON; | 
|  | } else if (type == TokenType.OPEN_CURLY_BRACKET) { | 
|  | return UnlinkedTokenType.OPEN_CURLY_BRACKET; | 
|  | } else if (type == TokenType.OPEN_PAREN) { | 
|  | return UnlinkedTokenType.OPEN_PAREN; | 
|  | } else if (type == TokenType.OPEN_SQUARE_BRACKET) { | 
|  | return UnlinkedTokenType.OPEN_SQUARE_BRACKET; | 
|  | } else if (type == Keyword.OPERATOR) { | 
|  | return UnlinkedTokenType.OPERATOR; | 
|  | } else if (type == Keyword.OUT) { | 
|  | return UnlinkedTokenType.OUT; | 
|  | } else if (type == Keyword.PART) { | 
|  | return UnlinkedTokenType.PART; | 
|  | } else if (type == Keyword.PATCH) { | 
|  | return UnlinkedTokenType.PATCH; | 
|  | } else if (type == TokenType.PERCENT) { | 
|  | return UnlinkedTokenType.PERCENT; | 
|  | } else if (type == TokenType.PERCENT_EQ) { | 
|  | return UnlinkedTokenType.PERCENT_EQ; | 
|  | } else if (type == TokenType.PERIOD) { | 
|  | return UnlinkedTokenType.PERIOD; | 
|  | } else if (type == TokenType.PERIOD_PERIOD) { | 
|  | return UnlinkedTokenType.PERIOD_PERIOD; | 
|  | } else if (type == TokenType.PERIOD_PERIOD_PERIOD) { | 
|  | return UnlinkedTokenType.PERIOD_PERIOD_PERIOD; | 
|  | } else if (type == TokenType.PERIOD_PERIOD_PERIOD_QUESTION) { | 
|  | return UnlinkedTokenType.PERIOD_PERIOD_PERIOD_QUESTION; | 
|  | } else if (type == TokenType.PLUS) { | 
|  | return UnlinkedTokenType.PLUS; | 
|  | } else if (type == TokenType.PLUS_EQ) { | 
|  | return UnlinkedTokenType.PLUS_EQ; | 
|  | } else if (type == TokenType.PLUS_PLUS) { | 
|  | return UnlinkedTokenType.PLUS_PLUS; | 
|  | } else if (type == TokenType.QUESTION) { | 
|  | return UnlinkedTokenType.QUESTION; | 
|  | } else if (type == TokenType.QUESTION_PERIOD) { | 
|  | return UnlinkedTokenType.QUESTION_PERIOD; | 
|  | } else if (type == TokenType.QUESTION_QUESTION) { | 
|  | return UnlinkedTokenType.QUESTION_QUESTION; | 
|  | } else if (type == TokenType.QUESTION_QUESTION_EQ) { | 
|  | return UnlinkedTokenType.QUESTION_QUESTION_EQ; | 
|  | } else if (type == Keyword.REQUIRED) { | 
|  | return UnlinkedTokenType.REQUIRED; | 
|  | } else if (type == Keyword.RETHROW) { | 
|  | return UnlinkedTokenType.RETHROW; | 
|  | } else if (type == Keyword.RETURN) { | 
|  | return UnlinkedTokenType.RETURN; | 
|  | } else if (type == TokenType.SCRIPT_TAG) { | 
|  | return UnlinkedTokenType.SCRIPT_TAG; | 
|  | } else if (type == TokenType.SEMICOLON) { | 
|  | return UnlinkedTokenType.SEMICOLON; | 
|  | } else if (type == Keyword.SET) { | 
|  | return UnlinkedTokenType.SET; | 
|  | } else if (type == Keyword.SHOW) { | 
|  | return UnlinkedTokenType.SHOW; | 
|  | } else if (type == TokenType.SINGLE_LINE_COMMENT) { | 
|  | return UnlinkedTokenType.SINGLE_LINE_COMMENT; | 
|  | } else if (type == TokenType.SLASH) { | 
|  | return UnlinkedTokenType.SLASH; | 
|  | } else if (type == TokenType.SLASH_EQ) { | 
|  | return UnlinkedTokenType.SLASH_EQ; | 
|  | } else if (type == Keyword.SOURCE) { | 
|  | return UnlinkedTokenType.SOURCE; | 
|  | } else if (type == TokenType.STAR) { | 
|  | return UnlinkedTokenType.STAR; | 
|  | } else if (type == TokenType.STAR_EQ) { | 
|  | return UnlinkedTokenType.STAR_EQ; | 
|  | } else if (type == Keyword.STATIC) { | 
|  | return UnlinkedTokenType.STATIC; | 
|  | } else if (type == TokenType.STRING) { | 
|  | return UnlinkedTokenType.STRING; | 
|  | } else if (type == TokenType.STRING_INTERPOLATION_EXPRESSION) { | 
|  | return UnlinkedTokenType.STRING_INTERPOLATION_EXPRESSION; | 
|  | } else if (type == TokenType.STRING_INTERPOLATION_IDENTIFIER) { | 
|  | return UnlinkedTokenType.STRING_INTERPOLATION_IDENTIFIER; | 
|  | } else if (type == Keyword.SUPER) { | 
|  | return UnlinkedTokenType.SUPER; | 
|  | } else if (type == Keyword.SWITCH) { | 
|  | return UnlinkedTokenType.SWITCH; | 
|  | } else if (type == Keyword.SYNC) { | 
|  | return UnlinkedTokenType.SYNC; | 
|  | } else if (type == Keyword.THIS) { | 
|  | return UnlinkedTokenType.THIS; | 
|  | } else if (type == Keyword.THROW) { | 
|  | return UnlinkedTokenType.THROW; | 
|  | } else if (type == TokenType.TILDE) { | 
|  | return UnlinkedTokenType.TILDE; | 
|  | } else if (type == TokenType.TILDE_SLASH) { | 
|  | return UnlinkedTokenType.TILDE_SLASH; | 
|  | } else if (type == TokenType.TILDE_SLASH_EQ) { | 
|  | return UnlinkedTokenType.TILDE_SLASH_EQ; | 
|  | } else if (type == Keyword.TRUE) { | 
|  | return UnlinkedTokenType.TRUE; | 
|  | } else if (type == Keyword.TRY) { | 
|  | return UnlinkedTokenType.TRY; | 
|  | } else if (type == Keyword.TYPEDEF) { | 
|  | return UnlinkedTokenType.TYPEDEF; | 
|  | } else if (type == Keyword.VAR) { | 
|  | return UnlinkedTokenType.VAR; | 
|  | } else if (type == Keyword.VOID) { | 
|  | return UnlinkedTokenType.VOID; | 
|  | } else if (type == Keyword.WHILE) { | 
|  | return UnlinkedTokenType.WHILE; | 
|  | } else if (type == Keyword.WITH) { | 
|  | return UnlinkedTokenType.WITH; | 
|  | } else if (type == Keyword.YIELD) { | 
|  | return UnlinkedTokenType.YIELD; | 
|  | } else { | 
|  | throw StateError('Unexpected type: $type'); | 
|  | } | 
|  | } | 
|  | } |