Class IRBytecodeContext
- java.lang.Object
-
- gw.internal.gosu.ir.compiler.bytecode.IRBytecodeContext
-
public class IRBytecodeContext extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<IRCompilerLocalVar>_allLocalVarsprivate Stack<org.objectweb.asm.Label>_breakLabelsprivate Stack<org.objectweb.asm.Label>_continueLabelsprivate Stack<IRFinallyCodePartitioner>_finallyStatementsprivate int_lastLineNumberprivate org.objectweb.asm.Label_lastVisitedLabelprivate org.objectweb.asm.MethodVisitor_mvprivate Stack<IRCompilerScope>_scopesprivate int_tempVarCount
-
Constructor Summary
Constructors Constructor Description IRBytecodeContext(org.objectweb.asm.MethodVisitor mv)
-
Method Summary
-
-
-
Field Detail
-
_mv
private org.objectweb.asm.MethodVisitor _mv
-
_scopes
private Stack<IRCompilerScope> _scopes
-
_allLocalVars
private java.util.List<IRCompilerLocalVar> _allLocalVars
-
_finallyStatements
private Stack<IRFinallyCodePartitioner> _finallyStatements
-
_tempVarCount
private int _tempVarCount
-
_breakLabels
private Stack<org.objectweb.asm.Label> _breakLabels
-
_continueLabels
private Stack<org.objectweb.asm.Label> _continueLabels
-
_lastVisitedLabel
private org.objectweb.asm.Label _lastVisitedLabel
-
_lastLineNumber
private int _lastLineNumber
-
-
Method Detail
-
getMv
public org.objectweb.asm.MethodVisitor getMv()
-
visitLabel
public void visitLabel(org.objectweb.asm.Label label)
-
getLocalCount
public int getLocalCount()
-
getMaxScopeSize
public int getMaxScopeSize()
-
isOutOfScope
private boolean isOutOfScope(IRCompilerLocalVar lv)
-
visitLocalVars
public void visitLocalVars()
-
pushScope
public void pushScope()
-
popScope
public void popScope()
-
indexThis
public void indexThis(IRType type)
-
indexSymbols
public void indexSymbols(java.util.List<IRSymbol> symbols)
-
getLocalVar
public IRCompilerLocalVar getLocalVar(IRSymbol symbol)
-
makeTempVar
public IRCompilerLocalVar makeTempVar(IRType type)
-
pushFinallyStatement
public IRFinallyCodePartitioner pushFinallyStatement(IRTryCatchFinallyStatement tryCatchFinallyStmt)
-
popFinallyStatement
public void popFinallyStatement(IRFinallyCodePartitioner partition)
-
hasFinallyStatements
public boolean hasFinallyStatements()
-
getFinallyParitioners
public Stack<IRFinallyCodePartitioner> getFinallyParitioners()
-
peekFinallyPartitioner
public IRFinallyCodePartitioner peekFinallyPartitioner()
-
inlineFinallyStatements
public void inlineFinallyStatements(IRTerminalStatement stmt)
-
compile
public void compile(IRElement element)
-
pushBreakLabel
public void pushBreakLabel(org.objectweb.asm.Label label)
-
popBreakLabel
public void popBreakLabel()
-
pushContinueLabel
public void pushContinueLabel(org.objectweb.asm.Label label)
-
popContinueLabel
public void popContinueLabel()
-
getCurrentBreakLabel
public org.objectweb.asm.Label getCurrentBreakLabel()
-
getCurrentContinueLabel
public org.objectweb.asm.Label getCurrentContinueLabel()
-
setLineNumber
public int setLineNumber(int lineNumber)
-
-