abstract class GroupClassGenerator extends java.lang.Object implements RuleMethodProcessor
Modifier and Type | Field and Description |
---|---|
protected ParserClassNode |
classNode |
private boolean |
forceCodeBuilding |
private static java.lang.Object |
lock |
protected RuleMethod |
method |
Modifier | Constructor and Description |
---|---|
protected |
GroupClassGenerator(boolean forceCodeBuilding) |
Modifier and Type | Method and Description |
---|---|
protected abstract boolean |
appliesTo(InstructionGraphNode group) |
protected void |
convertXLoads(InstructionGroup group) |
private void |
createGroupClassType(InstructionGroup group) |
private void |
generateClassBasics(InstructionGroup group,
org.objectweb.asm.ClassWriter cw) |
private void |
generateConstructor(org.objectweb.asm.ClassWriter cw) |
private void |
generateFields(InstructionGroup group,
org.objectweb.asm.ClassWriter cw) |
protected byte[] |
generateGroupClassCode(InstructionGroup group) |
protected abstract void |
generateMethod(InstructionGroup group,
org.objectweb.asm.ClassWriter cw) |
protected abstract org.objectweb.asm.Type |
getBaseType() |
protected void |
insertSetContextCalls(InstructionGroup group,
int localVarIx) |
private void |
loadGroupClass(InstructionGroup group) |
void |
process(ParserClassNode classNode,
RuleMethod method) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
appliesTo
private static final java.lang.Object lock
private final boolean forceCodeBuilding
protected ParserClassNode classNode
protected RuleMethod method
public void process(ParserClassNode classNode, RuleMethod method)
process
in interface RuleMethodProcessor
protected abstract boolean appliesTo(InstructionGraphNode group)
private void loadGroupClass(InstructionGroup group)
private void createGroupClassType(InstructionGroup group)
protected byte[] generateGroupClassCode(InstructionGroup group)
private void generateClassBasics(InstructionGroup group, org.objectweb.asm.ClassWriter cw)
protected abstract org.objectweb.asm.Type getBaseType()
private void generateFields(InstructionGroup group, org.objectweb.asm.ClassWriter cw)
private void generateConstructor(org.objectweb.asm.ClassWriter cw)
protected abstract void generateMethod(InstructionGroup group, org.objectweb.asm.ClassWriter cw)
protected void insertSetContextCalls(InstructionGroup group, int localVarIx)
protected void convertXLoads(InstructionGroup group)