blob: afa9dcacf491f450a4bb8ab7f00d1a297660ea10 [file] [log] [blame]
// Copyright (c) 2021, 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:kernel/ast.dart';
bool enableMacros = false;
final Uri macroLibraryUri = Uri.parse('package:macro_builder/src/macro.dart');
const String macroClassName = 'Macro';
class MacroDeclarationData {
bool macrosAreAvailable = false;
Map<Uri, List<String>> macroDeclarations = {};
List<List<Uri>>? compilationSequence;
}
class MacroApplicationData {
Map<Library, LibraryMacroApplicationData> libraryData = {};
}
class MacroApplications {
final List<Class> macros;
MacroApplications(this.macros);
}
class LibraryMacroApplicationData {
MacroApplications? libraryApplications;
Map<Class, ClassMacroApplicationData> classData = {};
Map<Typedef, MacroApplications> typedefApplications = {};
Map<Member, MacroApplications> memberApplications = {};
}
class ClassMacroApplicationData {
MacroApplications? classApplications;
Map<Member, MacroApplications> memberApplications = {};
}