Program | ::= | program(Classes | Interfaces). |
Classes | ::= | [ ] | [Class | Classes] |
Interfaces | ::= | [ ] | [Interface | Interfaces] |
Class | ::= | class(ClassName,OptionClassName,SuperInterfaces,Fields,Methods,final(Bool),public(Bool),abstract(Bool)) |
Interface | ::= | interface(InterfaceName,SuperInterfaces,Fields,Methods,final(Bool),public(Bool),abstract(Bool)) |
ClassName | ::= | className(packageName(String),shortClassName(String)) |
OptionClassName | ::= | none | ClassName |
InterfaceName | ::= | interfaceName(packageName(String),shortClassName(String)) |
SuperInterfaces | ::= | Interfaces |
Fields | ::= | [ ] | [Field | Fields] |
Field | ::= | field(FieldSignature,final(Bool),static(Bool),Visibility,initialValue(InitialValue)) |
FieldSignature | ::= | fieldSignature(FieldName,Type) |
Visibility | ::= | package | protected | private | public |
InitialValue | ::= | undef | null | int(Int) |
FieldName | ::= | fieldName(ClassName,ShortFieldName) |
ShortFieldName | ::= | shortFieldName(String) |
Type | ::= | primitiveType(PrimType) | refType(RefType) |
PrimType | ::= | boolean | byte | short | int |
RefType | ::= | classType(ClassName) | interfaceType(InterfaceName) | arrayType(Type) |
Methods | ::= | [ ] | [Method | Methods] |
Method | ::= | method(MethodSignature,OptionBytecodeMethod,final(Bool),static(Bool),Visibility) |
MethodSignature | ::= | methodSignature(MethodName,Parameters,OptionType) |
MethodName | ::= | methodName(ClassName,ShortMethodName) |
ShortMethodName | ::= | shortMethodName(String) |
Parameters | ::= | [ ] | [Type | Parameters] |
OptionType | ::= | none | Type |
OptionBytecodeMethod | ::= | none | bytecodeMethod(StackSize,LocalVarSize,FirstAddress,methodId(ModuleName,MethodIndex),ExceptionHandlers) |
StackSize | ::= | UnsignedInt |
LocalVarSize | ::= | UnsignedInt |
FirstAddress | ::= | Pc |
ModuleName | ::= | String |
MethodIndex | ::= | UnsignedInt |
Instructions | ::= | [ ] | [Instruction | Instructions] |
ExceptionHandlers | ::= | [ ] | [ExHandler | ExceptionHandlers] |
ExceptionHandler | ::= | exceptionHandler(OptionClassName,StartPc,EndPc,HandlerPc) |
StartPc | ::= | Pc |
EndPc | ::= | Pc |
HandlerPc | ::= | Pc |
Bytecode | ::= | bytecode(ModuleName,Pc,MethodIndex,Instruction,Offset). |
Pc | ::= | UnsignedInt |
MethodIndex | ::= | UnsignedInt |
Offset | ::= | Int |
VariableIndex | ::= | UnsignedInt |
Instruction | ::= | aaload | aastore | aconst_null | aload(VariableIndex) | areturn | arraylength | anewArray(refType(RefType)) | astore(VariableIndex) | athrow | baload | bastore | checkcast(refType(RefType)) | const(primitiveType(PrimType),Int) | dup| dup_x1 | dup_x2 | getfield(FieldSignature) | getstatic(FieldSignature) | goto(Offset) | i2b | i2s | ibinop(BinOpType) | iaload | iastore | if_acmpeq(Offset) | if_acmpne(Offset) | if_icmp(Offset,CompType) | if0(Offset,CompType) | ifnonnull(Offset) | ifnull(Offset) | iinc(VariableIndex,Int) | iload(VariableIndex) | instanceof(refType(RefType)) | invokestatic(MethodSignature) | invokevirtual(MethodSignature) | ireturn | istore(VariableIndex) | multianewarray(refType(RefType)) | new(ClassName) | newarray(primitiveType(PrimType)) | nop | pop | pop2 | putfield(FieldSignature) | putstatic(FieldSignature) | return | saload | sastore | swap | ineg |
BinOpType | ::= | addInt | andInt | divInt| mulInt | orInt | remInt | shlInt | shrInt | subInt | xorInt |
CompType | ::= | eqInt | neInt | ltInt | leInt | geInt | gtInt |