Class InterpretCodeGenerator

    • Field Detail

      • instruments

        private final java.util.List<IR> instruments
      • constantPool

        private java.util.Set<Token<?>> constantPool
      • labelNum

        private int labelNum
      • labels0

        private final java.util.Stack<Label> labels0
      • labels1

        private final java.util.Stack<Label> labels1
      • currLabel

        private Label currLabel
      • LOAD_CONSTANTS_TYPE

        private static java.util.Set<Token.TokenType> LOAD_CONSTANTS_TYPE
    • Method Detail

      • visitLabel

        private void visitLabel​(Label label)
      • pushLabel0

        private void pushLabel0​(Label label)
      • popLabel0

        private Label popLabel0()
      • peekLabel0

        private Label peekLabel0()
      • pushLabel1

        private void pushLabel1​(Label label)
      • popLabel1

        private Label popLabel1()
      • peekLabel1

        private Label peekLabel1()
      • makeLabel

        private Label makeLabel()
      • start

        public void start()
      • initVariables

        public void initVariables​(java.util.Map<java.lang.String,​VariableMeta> vars)
      • initConstants

        public void initConstants​(java.util.Set<Token<?>> constants)
      • onAssignment

        public void onAssignment​(Token<?> lookhead)
      • onShiftRight

        public void onShiftRight​(Token<?> lookhead)
      • onShiftLeft

        public void onShiftLeft​(Token<?> lookhead)
      • onUnsignedShiftRight

        public void onUnsignedShiftRight​(Token<?> lookhead)
      • onBitOr

        public void onBitOr​(Token<?> lookhead)
      • onBitAnd

        public void onBitAnd​(Token<?> lookhead)
      • onBitXor

        public void onBitXor​(Token<?> lookhead)
      • onBitNot

        public void onBitNot​(Token<?> lookhead)
      • onAdd

        public void onAdd​(Token<?> lookhead)
      • onSub

        public void onSub​(Token<?> lookhead)
      • onMult

        public void onMult​(Token<?> lookhead)
      • onExponent

        public void onExponent​(Token<?> loohead)
      • onDiv

        public void onDiv​(Token<?> lookhead)
      • onAndLeft

        public void onAndLeft​(Token<?> lookhead)
      • emit

        private void emit​(IR ir)
      • onAndRight

        public void onAndRight​(Token<?> lookhead)
      • onTernaryBoolean

        public void onTernaryBoolean​(Token<?> lookhead)
      • onTernaryLeft

        public void onTernaryLeft​(Token<?> lookhead)
      • onTernaryRight

        public void onTernaryRight​(Token<?> lookhead)
      • onTernaryEnd

        public void onTernaryEnd​(Token<?> lookhead)
      • onJoinLeft

        public void onJoinLeft​(Token<?> lookhead)
      • onJoinRight

        public void onJoinRight​(Token<?> lookhead)
      • onEq

        public void onEq​(Token<?> lookhead)
      • onMatch

        public void onMatch​(Token<?> lookhead)
      • onNeq

        public void onNeq​(Token<?> lookhead)
      • onLt

        public void onLt​(Token<?> lookhead)
      • onLe

        public void onLe​(Token<?> lookhead)
      • onGt

        public void onGt​(Token<?> lookhead)
      • onGe

        public void onGe​(Token<?> lookhead)
      • onMod

        public void onMod​(Token<?> lookhead)
      • onNot

        public void onNot​(Token<?> lookhead)
      • onNeg

        public void onNeg​(Token<?> lookhead)
      • getResult

        public Expression getResult​(boolean unboxObject)
      • optimize

        private void optimize​(java.util.List<IR> instruments)
      • resolveLabels

        private void resolveLabels​(java.util.List<IR> instruments)
      • onConstant

        public void onConstant​(Token<?> lookhead)
      • onMethodName

        public void onMethodName​(Token<?> lookhead)
      • onMethodParameter

        public void onMethodParameter​(Token<?> lookhead)
      • onMethodInvoke

        public void onMethodInvoke​(Token<?> lookhead)
      • onLambdaDefineStart

        public void onLambdaDefineStart​(Token<?> lookhead)
      • onLambdaArgument

        public void onLambdaArgument​(Token<?> lookhead,
                                     FunctionParam param)
      • onLambdaBodyStart

        public void onLambdaBodyStart​(Token<?> lookhead)
      • onLambdaBodyEnd

        public void onLambdaBodyEnd​(Token<?> lookhead)
      • onArray

        public void onArray​(Token<?> lookhead)
      • onArrayIndexStart

        public void onArrayIndexStart​(Token<?> token)
      • onArrayIndexEnd

        public void onArrayIndexEnd​(Token<?> lookhead)