#
# Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# ##########################################################
# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
# ##########################################################
#
class name jdk/jshell/DeclarationSnippet
header extends jdk/jshell/PersistentSnippet flags 421
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name jdk/jshell/Diag
header extends java/lang/Object flags 421

class name jdk/jshell/EvalException
header extends jdk/jshell/JShellException flags 21

class name jdk/jshell/ExpressionSnippet
header extends jdk/jshell/Snippet flags 21
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019

class name jdk/jshell/ImportSnippet
header extends jdk/jshell/PersistentSnippet flags 21
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019

class name jdk/jshell/JShellException
header extends java/lang/Exception flags 21

class name jdk/jshell/MethodSnippet
header extends jdk/jshell/DeclarationSnippet flags 21
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019

class name jdk/jshell/PersistentSnippet
header extends jdk/jshell/Snippet flags 421
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019

class name jdk/jshell/Snippet$SubKind
-field name RECORD_SUBKIND descriptor Ljdk/jshell/Snippet$SubKind;
field name RECORD_SUBKIND descriptor Ljdk/jshell/Snippet$SubKind; flags 4019

class name jdk/jshell/SnippetEvent
header extends java/lang/Object flags 21
innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name jdk/jshell/StatementSnippet
header extends jdk/jshell/Snippet flags 21
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019

class name jdk/jshell/TypeDeclSnippet
header extends jdk/jshell/DeclarationSnippet flags 21
innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019

class name jdk/jshell/execution/FailOverExecutionControlProvider
header extends java/lang/Object implements jdk/jshell/spi/ExecutionControlProvider flags 21
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name jdk/jshell/execution/JdiDefaultExecutionControl
header extends jdk/jshell/execution/JdiExecutionControl flags 21
innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name jdk/jshell/execution/JdiExecutionControlProvider
header extends java/lang/Object implements jdk/jshell/spi/ExecutionControlProvider flags 21

class name jdk/jshell/execution/LoaderDelegate
header extends java/lang/Object flags 601
innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9

class name jdk/jshell/execution/LocalExecutionControlProvider
header extends java/lang/Object implements jdk/jshell/spi/ExecutionControlProvider flags 21

class name jdk/jshell/spi/ExecutionControlProvider
header extends java/lang/Object flags 601

class name jdk/jshell/spi/ExecutionEnv
header extends java/lang/Object flags 601

class name jdk/jshell/spi/SPIResolutionException
header extends java/lang/RuntimeException flags 21

class name jdk/jshell/tool/JavaShellToolBuilder
header extends java/lang/Object flags 601
method name interactiveTerminal descriptor (Z)Ljdk/jshell/tool/JavaShellToolBuilder; flags 1

