# Copyright (c) 2014, 2020, 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.
#
# 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.

jasm.usage=\
Usage: java -jar asmtools.jar jasm [options] file.jasm...\n\
where possible options include:

jasm.opt.d=\
\     -d destdir  directory to place resulting .class files
jasm.opt.v=\
\     -v          add trace information
jasm.opt.g=\
\     -g          add debug information
jasm.opt.version=\
\     -version    prints the program version
jasm.opt.nowrite=\
\     -nowrite    do not write resulting .class files
jasm.opt.strict=\
\     -strict     consider warnings as errors
jasm.opt.nowarn=\
\     -nowarn     do not print warnings
jasm.opt.cv=\
\     -cv major.minor  set operating class file version (by default {0}.{1})


jasm.error.d_requires_argument=-d requires argument
jasm.error.does_not_exist={0} does not exist
jasm.error.cv_requires_arg=-cv requires argument
jasm.error.invalid_major_minor_param=invalid parameter major.minor
jasm.error.invalid_option=invalid option: {0}
jasm.error.cannot_read=cannot read {0}
jasm.error.cannot_write=cannot write {0}
jasm.error.fatal_error=fatal error
jasm.error.fatal_exception=fatal exception


# Scanner:
err.invalid.escape.char=Invalid escape character.
err.eof.in.comment=Comment not terminated at end of input.
err.invalid.number=Invalid character "{0}" in number.
err.invalid.octal.number=Invalid character in octal number.
err.overflow=Numeric overflow.
err.float.format=Invalid floating point format.
err.eof.in.string=String not terminated at end of input.
err.newline.in.string=String not terminated at end of line.
err.funny.char=Invalid character in input.
err.unbalanced.paren=Unbalanced parentheses.
# Parser:
err.package.repeated=Package statement repeated.
warn.intf.repeated=Interface {0} repeated.
warn.exc.repeated=Exception repeated in throws clause.
warn.record.repeated=Record attribute repeated.
err.multiple.inherit=Multiple inheritance is not supported.
err.toplevel.expected=Class, module or interface declaration expected.
err.const.def.expected=Constant declaration expected.
err.const.undecl=Constant #{0} not declared.
err.const.redecl=Constant {0} redeclared.
warn.const0.redecl=Re-declaration of Constant #0 cannot be written to the class file.
err.field.expected=Field, Method, NestMembers, NestHost or Record declaration expected.
err.token.expected={0} expected.
err.identifier.expected=Identifier expected.
err.extra.nesthost.attribute=There may be at most one NestHost attribute.
err.extra.nestmembers.attribute=There may be at most one NestMembers attribute.
err.extra.permittedsubclasses.attribute=There may be at most one PermittedSubclasses attribute.
err.extra.record.attribute=There may be at most one Record attribute.
err.grouped.component.expected=Either an annotation or a record component expected.
warn.no.components.in.record.attribute=Record should have at least one component.
err.one.of.two.token.expected=Either #{0} or #{1} token expected.

err.both.nesthost.nestmembers.found=The attributes table of a ClassFile structure must not contain both a NestMembers attribute and a NestHost attribute.
err.name.expected=Name expected, got {0}.
err.module.name.expected=Module name expected, got {0}.
err.int.expected=Integer expected.
err.neg.forbidden=Negative integer is not allowed here.
err.value.large=Value doesn't fit in {0}.
err.value.expected=Value expected.
err.wrong.mnemocode=Invalid mnemocode ({0}).
err.default.redecl=Default statement already declared in this table.
err.long.switchtable=Switchtable too long: > {0}.
err.io.exception=I/O error in {0}.
warn.wrong.tag=Wrong tag: {0} expected.
warn.wrong.tag2=Wrong tags: {0} or {1} expected.
# Code Gen:
err.locvar.redecl=Local variable {0} redeclared.
err.locvar.undecl=Local variable {0} not declared.
#err.locvar.expected=Local variable expected.
err.label.redecl=Label {0} redeclared.
err.label.undecl=Label {0} not declared.
err.label.expected=Label expected.
err.subtag.expected=Subtag expected.
err.type.expected=Type expected.
err.trap.tryredecl=<try {0}> redeclared.
err.trap.endtryredecl=<endtry {0}> redeclared.
err.trap.notry=No <try {0}> found.
err.trap.noendtry=No <endtry {0}> found.
warn.trap.notref=No <catch {0}> declared.
err.cannot.write=Cannot write to {0}.
err.msig.malformed=Malformed method signature at char {0}. [err={1}]
err.no.classname=Class name not defined.
warn.msig.more255=Number of parameters too large ({0}>255).
warn.illslot=Local variable at Illegal slot {0}.
warn.repeated.modifier=Repeated modifier.
warn.invalid.modifier.init=invalid modifier for <init> method  \"{0}\".
warn.invalid.modifier.fiva=at most one of final and volatile modifiers can be used for a field
warn.invalid.modifier.intfield=interface field must be public static final only
warn.init.in_int=<init> method cannot be placed in an interface.
warn.invalid.modifier.intmth=interface method must be abstract public only  \"{0}\".
warn.invalid.modifier.abst=invalid modifier for abstract method.
#
warn.invalid.modifier.field=invalid modifier(s) for a field \"{0}\"
warn.invalid.modifier.mth=invalid modifier(s) for a method \"{0}\"
warn.invalid.modifier.innerclass=invalid modifier for an inner class \"{0}\"
#
warn.invalid.modifier.class=invalid modifier(s) for a class \"{0}\"
warn.invalid.modifier.int=invalid modifier(s) for an interface \"{0}\"
#
warn.invalid.modifier.acc=at most one of public, protected, and private modifiers can be used.
warn.invalid.modifier.int.abs=interface class must have abstract modifier.
warn.missing.modifier.class=class or enum declaration missing.
warn.invalid.modifier.class.finabs=class cannot be both abstract and final.
warn.invalid.modifier.class.intenum=cannot be both interface and enum.
err.itemtype.expected=StackMap item type expected instead of {0}.
err.localsmap.repeated=locals_map redeclared.
err.invalid.stack.frame.type=invalid stack frame type.
err.invalid.offset.same.frame=offset value more than 64 for the 'same_frame' type frame.
err.no.stack.map.same.locals=stack map element for the 'same_locals_1_stack_item_frame' type frame is absent.
err.should.be.only.one.stack.map.element=should be only one stack map element for the 'same_locals_1_stack_item_frame' type frame.
err.invalid.offset.same.locals=offset value more than 64 for the 'same_locals_1_stack_item_frame' type frame.
err.unexpected.stack.maps=there are unexpected stack maps.
err.unexpected.locals.maps=there are unexpected locals maps.
err.no.locals.map.append=locals map element for the 'append_frame' type frame is absent.
err.more.locals.map.elements=there are more than 3 locals map element for the 'append_frame' type frame.
err.stackmap.repeated=stack_map redeclared.
err.version.expected=class file version expected
err.invalid.innerclass=Invalid declaration of Inner Class
err.invalid.bootstrapmethod=Invalid declaration of BootstrapMethod Entry
err.frametype.repeated=Frametype repeated
err.invalid.paramnum=Invalid Parameter Number: {0}.
err.duplicate.paramnum=Duplicate Parameter Number: {0}.
err.paramname.constnum.invaltype=ParameterName CPX at {0} is not a ConstantString.
err.paramname.token.unexpected=Incorrect ParamName, unrecognized token: \"{0}\".
#
# annotations Errors
#
err.incorrect.annot.class=Incorrect Annotation (class), expected class name or CPX), got \"{0}\".
err.incorrect.annot.enum=Incorrect Annotation (enum), expected type field IDENT, \"{0}\".
err.incorrect.annot.enum.cpx==Incorrect Annotation (enum), expected type field CPX.
err.incorrect.annot.token=Incorrect Annotation, unrecognized token: \"{0}\".
err.incorrect.annot.bool=Incorrect Annotation (boolean), expected Integer), got \"{0}\".
err.incorrect.annot.byte=Incorrect Annotation (byte), expected Integer), got \"{0}\".
err.incorrect.annot.char=Incorrect Annotation (char), expected Integer), got \"{0}\".
err.incorrect.annot.short=Incorrect Annotation (short), expected Integer), got \"{0}\".
err.incorrect.annot.keyword=Incorrect Annotation keyword \"{0}\".
err.incorrect.typeannot.target=Incorrect TypeAnnotation target \"{0}\".
err.incorrect.typeannot.targtype.string=Incorrect TypeAnnotation \"{0}\" argument: (expected String),  \"{1}\".
err.incorrect.typeannot.targtype.int=Incorrect TypeAnnotation \"{0}\" argument: (expected Integer),  \"{1}\".
err.incorrect.typeannot.pathentry=Incorrect TypeAnnotation TargetPath PathEntry \"{0}\".
err.incorrect.typeannot.pathentry.argindex=Incorrect TypeAnnotation  TargetPath PathEntry ArgIndex (expected Integer),  \"{0}\".
#
# module Errors
err.module.statement.expected= Module statement expected.
err.requires.expected=Module statement \"requires [transitive] [static] ModuleName;\" expected.
warn.dot.will.be.converted=Forward slash \"/\" expected instead of dot \".\". The dot is replaced by \"/\".
#
# Compiler Errors
#
comperr.constcell.nullvalset="Cell without value in setCell"
comperr.constcell.nullvalhash="Cell without value in cpoolHashByValue"
comperr.constcell.invarg="Cell[{0}] has #{1}"
comperr.constcell.nullval="ConstCell.value=null??"
comperr.val.noteq="Values not eq"
comperr.instr.nullarg="null arg for {0}"
comperr.instr.arglong="Too long argument of {0}: {1}"
comperr.instr.opclen="Wrong opcLength({0})"
