###############################################################################
# Copyright (c) 2000, 2009 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
### compiler messages.

### compilation
compilation_unresolvedProblem =  Unresolved compilation problem: \n
compilation_unresolvedProblems = Unresolved compilation problems: \n
compilation_request    = [parsing    {2} - #{0}/{1}]
compilation_loadBinary = [reading    {0}.class]
compilation_process    = [analyzing  {2} - #{0}/{1}]
compilation_write      = [writing    {1} - #{0}]
compilation_done       = [completed  {2} - #{0}/{1}]
compilation_units      = [{0} units compiled]
compilation_unit       = [{0} unit compiled]
compilation_internalError = Internal compiler error: {0}
compilation_beginningToCompile=Beginning to compile
compilation_processing=Processing {0}

### output
output_isFile =  Regular file {0} cannot be used as output directory
output_notValidAll =  Could not create output directory {0}
output_notValid = Could not create subdirectory {0} into output directory {1}

### problem
problem_noSourceInformation =
problem_atLine = (at line {0})

### abort
abort_invalidAttribute = SANITY CHECK: Invalid attribute for local variable {0}
abort_invalidExceptionAttribute = SANITY CHECK: Invalid attribute for exception attribute for {0}
abort_missingCode = Missing code implementation in the compiler
abort_againstSourceModel = Cannot compile against source model {0} issued from {1}
abort_invalidOpcode = SANITY CHECK: Invalid opcode {0} at pc {1} for stackmap table attribute for method {2}

### accept
accept_cannot = Cannot accept the compilation unit:

### parser
parser_incorrectPath = The path for the javadcl.java file is incorrect
parser_moveFiles = MOVE FILES IN THE Runtime DIRECTORY OF Parser.class
parser_syntaxRecovery = SYNTAX RECOVERY
parser_regularParse = REGULAR PARSE
parser_missingFile = missing file {0}
parser_corruptedFile = corrupted file {0}
parser_endOfFile = end of file
parser_endOfConstructor = end of constructor
parser_endOfMethod = end of method
parser_endOfInitializer = end of initializer

### ast
ast_missingCode = Missing code gen implementation

### constant
constant_cannotCastedInto =  {0} constant cannot be casted into {1}
constant_cannotConvertedTo = {0} constant cannot be converted to {1}
