//===--- State.h - State chain for the VM and AST Walker --------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Defines the base class of the interpreter and evaluator state. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_AST_INTERP_STATE_H #define LLVM_CLANG_AST_INTERP_STATE_H #include "clang/AST/ASTDiagnostic.h" #include "clang/AST/Expr.h" namespace clang { class OptionalDiagnostic; /// Kinds of access we can perform on an object, for diagnostics. Note that /// we consider a member function call to be a kind of access, even though /// it is not formally an access of the object, because it has (largely) the /// same set of semantic restrictions. enum AccessKinds { … }; /// The order of this enum is important for diagnostics. enum CheckSubobjectKind { … }; namespace interp { class Frame; class SourceInfo; /// Interface for the VM to interact with the AST walker's context. class State { … }; } // namespace interp } // namespace clang #endif