#
# Copyright (c) 1996, 2003, 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.
#

FILES_java = \
	sun/tools/java/RuntimeConstants.java \
	sun/tools/javac/Main.java \
	sun/tools/javac/BatchEnvironment.java \
	sun/tools/javac/ErrorConsumer.java \
	sun/tools/javac/ErrorMessage.java \
	sun/tools/javac/BatchParser.java \
	sun/tools/javac/SourceClass.java \
	sun/tools/javac/SourceMember.java \
	sun/tools/javac/CompilerMember.java \
	sun/tools/tree/LocalMember.java \
	sun/tools/tree/Node.java \
	sun/tools/tree/Expression.java \
	sun/tools/tree/Statement.java \
	sun/tools/tree/TypeExpression.java \
	sun/tools/tree/IdentifierExpression.java \
	sun/tools/tree/UnaryExpression.java \
	sun/tools/tree/FieldExpression.java \
	sun/tools/tree/NaryExpression.java \
	sun/tools/tree/MethodExpression.java \
	sun/tools/tree/InlineMethodExpression.java \
	sun/tools/tree/ConstantExpression.java \
	sun/tools/tree/IntegerExpression.java \
	sun/tools/tree/CharExpression.java \
	sun/tools/tree/IntExpression.java \
	sun/tools/tree/LongExpression.java \
	sun/tools/tree/FloatExpression.java \
	sun/tools/tree/DoubleExpression.java \
	sun/tools/tree/StringExpression.java \
	sun/tools/tree/BooleanExpression.java \
	sun/tools/tree/NullExpression.java \
	sun/tools/tree/ThisExpression.java \
	sun/tools/tree/SuperExpression.java \
	sun/tools/tree/NotExpression.java \
	sun/tools/tree/PositiveExpression.java \
	sun/tools/tree/NegativeExpression.java \
	sun/tools/tree/BitNotExpression.java \
	sun/tools/tree/IncDecExpression.java \
	sun/tools/tree/PreIncExpression.java \
	sun/tools/tree/PreDecExpression.java \
	sun/tools/tree/BinaryExpression.java \
	sun/tools/tree/CastExpression.java \
	sun/tools/tree/ExprExpression.java \
	sun/tools/tree/ArrayExpression.java \
	sun/tools/tree/NewArrayExpression.java \
	sun/tools/tree/NewInstanceExpression.java \
	sun/tools/tree/ArrayAccessExpression.java \
	sun/tools/tree/PostIncExpression.java \
	sun/tools/tree/PostDecExpression.java \
	sun/tools/tree/CommaExpression.java \
	sun/tools/tree/InstanceOfExpression.java \
	sun/tools/tree/BinaryArithmeticExpression.java \
	sun/tools/tree/AddExpression.java \
	sun/tools/tree/SubtractExpression.java \
	sun/tools/tree/MultiplyExpression.java \
	sun/tools/tree/DivRemExpression.java \
	sun/tools/tree/DivideExpression.java \
	sun/tools/tree/RemainderExpression.java \
	sun/tools/tree/BinaryShiftExpression.java \
	sun/tools/tree/ShiftLeftExpression.java \
	sun/tools/tree/ShiftRightExpression.java \
	sun/tools/tree/BinaryCompareExpression.java \
	sun/tools/tree/LessExpression.java \
	sun/tools/tree/LessOrEqualExpression.java \
	sun/tools/tree/GreaterExpression.java \
	sun/tools/tree/GreaterOrEqualExpression.java \
	sun/tools/tree/BinaryEqualityExpression.java \
	sun/tools/tree/EqualExpression.java \
	sun/tools/tree/NotEqualExpression.java \
	sun/tools/tree/BinaryBitExpression.java \
	sun/tools/tree/BitAndExpression.java \
	sun/tools/tree/BitXorExpression.java \
	sun/tools/tree/BitOrExpression.java \
	sun/tools/tree/BinaryLogicalExpression.java \
	sun/tools/tree/AndExpression.java \
	sun/tools/tree/OrExpression.java \
	sun/tools/tree/BinaryAssignExpression.java \
	sun/tools/tree/IfStatement.java \
	sun/tools/tree/AssignExpression.java \
	sun/tools/tree/AssignOpExpression.java \
	sun/tools/tree/AssignAddExpression.java \
	sun/tools/tree/AssignSubtractExpression.java \
	sun/tools/tree/AssignMultiplyExpression.java \
	sun/tools/tree/AssignDivideExpression.java \
	sun/tools/tree/AssignRemainderExpression.java \
	sun/tools/tree/AssignBitAndExpression.java \
	sun/tools/tree/AssignBitOrExpression.java \
	sun/tools/tree/AssignBitXorExpression.java \
	sun/tools/tree/AssignShiftLeftExpression.java \
	sun/tools/tree/AssignShiftRightExpression.java \
	sun/tools/tree/ConditionalExpression.java \
	sun/tools/tree/ConditionVars.java \
	sun/tools/tree/CompoundStatement.java \
	sun/tools/tree/DeclarationStatement.java \
	sun/tools/tree/ExpressionStatement.java \
	sun/tools/tree/ForStatement.java \
	sun/tools/tree/WhileStatement.java \
	sun/tools/tree/DoStatement.java \
	sun/tools/tree/BreakStatement.java \
	sun/tools/tree/ContinueStatement.java \
	sun/tools/tree/ReturnStatement.java \
	sun/tools/tree/InlineReturnStatement.java \
	sun/tools/tree/CaseStatement.java \
	sun/tools/tree/SwitchStatement.java \
	sun/tools/tree/CatchStatement.java \
	sun/tools/tree/TryStatement.java \
	sun/tools/tree/FinallyStatement.java \
	sun/tools/tree/ThrowStatement.java \
	sun/tools/tree/SynchronizedStatement.java \
	sun/tools/tree/ConvertExpression.java \
	sun/tools/tree/LengthExpression.java \
	sun/tools/tree/ByteExpression.java \
	sun/tools/tree/ShortExpression.java \
	sun/tools/tree/Context.java \
	sun/tools/tree/CheckContext.java \
	sun/tools/tree/CodeContext.java \
	sun/tools/tree/VarDeclarationStatement.java \
	sun/tools/asm/Assembler.java \
	sun/tools/asm/Instruction.java \
	sun/tools/asm/Label.java \
	sun/tools/asm/SwitchData.java \
	sun/tools/asm/Cover.java \
	sun/tools/asm/ArrayData.java \
	sun/tools/asm/TryData.java \
	sun/tools/asm/CatchData.java \
	sun/tools/asm/ConstantPool.java \
	sun/tools/asm/ConstantPoolData.java \
	sun/tools/asm/StringConstantData.java \
	sun/tools/asm/ClassConstantData.java \
	sun/tools/asm/FieldConstantData.java \
	sun/tools/asm/NameAndTypeData.java \
	sun/tools/asm/NameAndTypeConstantData.java \
	sun/tools/asm/NumberConstantData.java \
	sun/tools/asm/LocalVariableTable.java \
	sun/tools/asm/LocalVariable.java \
	sun/tools/java/Environment.java \
	sun/tools/java/Scanner.java \
	sun/tools/java/ScannerInputReader.java \
	sun/tools/java/Parser.java \
	sun/tools/java/Imports.java \
	sun/tools/java/ClassDefinition.java \
	sun/tools/java/MemberDefinition.java \
	sun/tools/java/ClassDeclaration.java \
	sun/tools/java/Identifier.java \
	sun/tools/java/Package.java \
	sun/tools/java/ClassPath.java \
	sun/tools/java/ClassFile.java \
	sun/tools/java/ClassNotFound.java \
	sun/tools/java/Constants.java \
	sun/tools/java/SyntaxError.java \
	sun/tools/java/Type.java \
	sun/tools/java/MethodType.java \
	sun/tools/java/ArrayType.java \
	sun/tools/java/ClassType.java \
	sun/tools/java/AmbiguousClass.java \
	sun/tools/java/CompilerError.java \
	sun/tools/java/AmbiguousMember.java \
	sun/tools/java/BinaryClass.java \
	sun/tools/java/BinaryConstantPool.java \
	sun/tools/java/BinaryAttribute.java \
	sun/tools/java/BinaryCode.java \
	sun/tools/java/BinaryExceptionHandler.java \
	sun/tools/java/BinaryMember.java \
	sun/tools/tree/UnsignedShiftRightExpression.java \
	sun/tools/tree/AssignUnsignedShiftRightExpression.java \
	sun/tools/asm/StringExpressionConstantData.java \
	sun/tools/tree/InlineNewInstanceExpression.java \
	sun/tools/java/IdentifierToken.java \
	sun/tools/java/ParserActions.java \
	sun/tools/tree/UplevelReference.java \
	sun/tools/tree/FieldUpdater.java \
	sun/tools/tree/Vset.java \
	sun/tools/java/MethodSet.java \
	sun/tools/util/ModifierFilter.java \
	sun/tools/util/CommandLine.java
