###############################################################################
# Copyright (c) 2000, 2007 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
### Eclipse Java Core 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

### output
output.isFile =  The outDir is a file : {0}
output.isFileNotDirectory = The outDir is a file not a directory.
output.dirName =  The output dir name is : {0}
output.notValidAll =  The outDir is not a valid directory name. All the directories cannot be created.
output.fileName =  file name : {0}
output.notValid = The outDir is not a valid directory name. The directory cannot be created.

### problem
problem.noSourceInformation = \n!! no source information available !!
problem.atLine = (at line {0})

### abort
abort.invalidAttribute = SANITY CHECK: Invalid attribute for local variable {0}
abort.missingCode = Missing code implementation in the compiler
abort.againstSourceModel = Cannot compile against source model {0} issued from {1}

### accept
accept.cannot = Cannot accept the compilation unit: 

### parser
parser.incorrectPath = The path for the.jsScriptdcl.jsScript 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 function
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}

### miscellaneous
error.undefinedTypeVariable = Undefined type variable: {0}
error.missingBound = The class files for {0} and {1} are out of sync
