// 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.

/// This library is deprecated. Please convert all references to this library to
/// reference one of the following public libraries:
/// * package:analyzer/dart/ast/ast.dart
/// * package:analyzer/dart/ast/visitor.dart
///
/// If your code is using APIs not available in these public libraries, please
/// contact the analyzer team to either find an alternate API or have the API
/// you depend on added to the public API.
@deprecated
library analyzer.src.generated.ast;

export 'package:analyzer/dart/ast/ast.dart';
export 'package:analyzer/dart/ast/visitor.dart';
export 'package:analyzer/src/dart/ast/utilities.dart';
