Class IRBytecodeContext

java.lang.Object
gw.internal.gosu.ir.compiler.bytecode.IRBytecodeContext

public class IRBytecodeContext extends Object
  • Field Details

    • _mv

      private org.objectweb.asm.MethodVisitor _mv
    • _scopes

      private Stack<IRCompilerScope> _scopes
    • _allLocalVars

      private 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
  • Constructor Details

    • IRBytecodeContext

      public IRBytecodeContext(org.objectweb.asm.MethodVisitor mv)
  • Method Details

    • 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(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)