
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: java/jvm/level0/extracted
Source used for this grammar: Jeroen van den Bos, Jurgen Vinju, lang::jvm::ast::Level0, 2010–2012 [GitHub]
Class, InnerClass, Field, Method, Instruction, TryCatchBlock, LocalVariable), 0 root (—), 1 top (Class), 0 bottom (—).[version] 2, [access] 7, [name] 10, [signature] 6, [superName] 2, [interfaces] 2, [sourceFile], [sourceDebug], [outerClass], [outerMethod], [outerMethodDescription], [innerClasses] 2, [fields] 2, [methods] 2, [class] 2, [outerName], [innerName], [innerClass] 2, [description] 8, [value], [field] 2, [exceptions], [instructions], [tryCatchBlocks], [localVariables], [method] 2, [opcode] 7, [owner] 2, [fieldRef], [index] 4, [amount], [increment], [instruction], [operand], [integer], [labelIndex] 2, [jump], [label], [line], [lineNumber], [localVariable] 2, [stringValue], [loadConstantString], [integerValue], [loadConstantInteger], [longValue], [loadConstantLong], [floatValue], [loadConstantFloat], [doubleValue], [loadConstantDouble], [defaultLabelIndex] 2, [keys], [cases] 2, [lookupSwitch], [dimensions], [multiANewArray], [minIndex], [maxIndex], [tableSwitch], [type] 2, [startLabelIndex] 3, [endLabelIndex] 3, [handlerLabelIndex] 2, [tryCatchBlock], [finallyBlock].Class ::= [class]::[version]::integer [access]::integer [name]::string [signature]::string [superName]::string [interfaces]::string [sourceFile]::string [sourceDebug]::string [outerClass]::string [outerMethod]::string [outerMethodDescription]::string [innerClasses]::InnerClass [fields]::Field [methods]::Method [class]::[version]::integer [access]::integer [name]::string [signature]::string [superName]::string [interfaces]::string [innerClasses]::InnerClass [fields]::Field [methods]::Method
InnerClass ::= [innerClass]::[name]::string [outerName]::string [innerName]::string [access]::integer [innerClass]::[name]::string [access]::integer
Field ::= [field]::[access]::integer [name]::string [description]::string [signature]::string [value]::α [field]::[access]::integer [name]::string [description]::string [signature]::string
Method ::= [method]::[access]::integer [name]::string [description]::string [signature]::string [exceptions]::string [instructions]::Instruction [tryCatchBlocks]::TryCatchBlock [localVariables]::LocalVariable
Instruction ::= [fieldRef]::[opcode]::integer [owner]::string [name]::string [description]::string [increment]::[index]::integer [amount]::integer [instruction]::[opcode]::integer [integer]::[opcode]::integer [operand]::integer [jump]::[opcode]::integer [labelIndex]::integer [label]::[index]::integer [lineNumber]::[line]::integer [labelIndex]::integer [localVariable]::[opcode]::integer [index]::integer [loadConstantString]::[stringValue]::string [loadConstantInteger]::[integerValue]::integer [loadConstantLong]::[longValue]::integer [loadConstantFloat]::[floatValue]::integer [loadConstantDouble]::[doubleValue]::integer [lookupSwitch]::[defaultLabelIndex]::integer [keys]::integer [cases]::integer [method]::[opcode]::integer [owner]::string [name]::string [description]::string [multiANewArray]::[description]::string [dimensions]::integer [tableSwitch]::[minIndex]::integer [maxIndex]::integer [defaultLabelIndex]::integer [cases]::integer [type]::[opcode]::integer [description]::string
TryCatchBlock ::= [tryCatchBlock]::[startLabelIndex]::integer [endLabelIndex]::integer [handlerLabelIndex]::integer [type]::string [finallyBlock]::[startLabelIndex]::integer [endLabelIndex]::integer [handlerLabelIndex]::integer
LocalVariable ::= [localVariable]::[name]::string [description]::string [signature]::string [startLabelIndex]::integer [endLabelIndex]::integer [index]::integer