0a1fb8d248
Several support classes also had to move to front_end along with the scanner. Some of these support classes arguably don't belong to the scanner itself, since they have other uses (e.g. SyntacticEntity, ErrorCode, ErrorSeverity, ErrorType, and StringUtilities). They will be reorganized into a more appropriate location in future CLs, at the time that they become needed by other components of the front end. In order to avoid dragging in a lot of dependencies, the following changes were made: 1. Scanner no longer reports errors through Source and AnalysisErrorListener objects passed to the constructor. Instead, it provides an abstract reportError() method which clients may override to perform error reporting in any way they wish. Analyzer contains an override of Scanner that mimics the old behavior in order to maintain compatibility. 2. Static members of ErrorCode (`values` and `byUniqueName`) have been moved to top level, and remain in analyzer. To maintain compatibility, these static members remain in ErrorCode (as deprecated members that simply wrap the implementations in analyzer). This means we have a reverse dependency (front_end depends on analyzer), but this dependency will go away as soon as we publish the next breaking change release of analyzer. R=brianwilkerson@google.com, scheglov@google.com Review URL: https://codereview.chromium.org/2486873003 .
13 lines
475 B
Dart
13 lines
475 B
Dart
// Copyright (c) 2014, 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.
|
|
|
|
/**
|
|
* Defines the tokens that are produced by the scanner, used by the parser, and
|
|
* referenced from the [AST structure](ast.dart).
|
|
*/
|
|
library analyzer.dart.ast.token;
|
|
|
|
export 'package:front_end/src/scanner/token.dart'
|
|
show Keyword, Token, TokenType;
|