当前位置: 首页>>代码示例>>Java>>正文


Java Interpreter类代码示例

本文整理汇总了Java中org.objectweb.asm.tree.analysis.Interpreter的典型用法代码示例。如果您正苦于以下问题:Java Interpreter类的具体用法?Java Interpreter怎么用?Java Interpreter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Interpreter类属于org.objectweb.asm.tree.analysis包,在下文中一共展示了Interpreter类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: merge

import org.objectweb.asm.tree.analysis.Interpreter; //导入依赖的package包/类
@Override
public boolean merge(final Frame<? extends BasicValue> frame,
                     final Interpreter<BasicValue> interpreter) throws AnalyzerException
{
    if (force)
    {
        // uses the current frame
        return true;
    }
    if (frame instanceof ExtendedFrame && ((ExtendedFrame) frame).force)
    {
        init(frame);
        return true;
    }
    return super.merge(frame, interpreter);
}
 
开发者ID:electronicarts,项目名称:ea-async,代码行数:17,代码来源:FrameAnalyzer.java

示例2: merge

import org.objectweb.asm.tree.analysis.Interpreter; //导入依赖的package包/类
/**
 * Merges this frame with the given frame.
 * 
 * @param frame
 *            a frame.
 * @param interpreter
 *            the interpreter used to merge values.
 * @return <tt>true</tt> if this frame has been changed as a result of the
 *         merge operation, or <tt>false</tt> otherwise.
 * @throws AnalyzerException
 *             if the frames have incompatible sizes.
 */
public boolean merge(final Frame<? extends V> frame,
        final Interpreter interpreter) throws AnalyzerException {
    if (top != frame.top) {
        throw new AnalyzerException(null, "Incompatible stack heights");
    }
    boolean changes = false;
    for (int i = 0; i < locals + top; ++i) {
        V v = (V) interpreter.merge(values[i], frame.values[i]);
        if (!v.equals(values[i])) {
            values[i] = v;
            changes = true;
        }
    }
    return changes;
}
 
开发者ID:gmu-swe,项目名称:phosphor,代码行数:28,代码来源:Frame.java

示例3: execute

import org.objectweb.asm.tree.analysis.Interpreter; //导入依赖的package包/类
public void execute(AbstractInsnNode insn, Interpreter interpreter) throws AnalyzerException {

        boolean never = false;
        if (never) {
            super.execute(insn, interpreter);
            return;
        }

        int insnOpcode = insn.getOpcode();

        if (insnOpcode == Opcodes.MONITORENTER || insnOpcode == Opcodes.MONITOREXIT) {
            Value pop = pop();
            interpreter.unaryOperation(insn, pop);

            int local = -1;
            for (int i = 0; i < getLocals(); i++) {
                if (getLocal(i) == pop) local = i;
            }

            if (local > -1) {
                if (insnOpcode == Opcodes.MONITORENTER) {
                    monitorEnter(local);
                } else {
                    monitorExit(local);
                }
            }

        } else {
            super.execute(insn, interpreter);
        }
    }
 
开发者ID:vsilaev,项目名称:tascalate-javaflow,代码行数:32,代码来源:MonitoringFrame.java

示例4: execute

import org.objectweb.asm.tree.analysis.Interpreter; //导入依赖的package包/类
public void execute(AbstractInsnNode insn, Interpreter interpreter)
        throws AnalyzerException {
    
	boolean never = false;
    if (never) {
        super.execute(insn, interpreter);
        return;
    }

    int insnOpcode = insn.getOpcode();
    
    if (insnOpcode == Opcodes.MONITORENTER || insnOpcode == Opcodes.MONITOREXIT) {
        Value pop = pop();
        interpreter.unaryOperation(insn, pop);

        int local = -1;
        for (int i = 0; i < getLocals(); i++) {
            if (getLocal(i) == pop) local = i;
        }
        
        if (local > -1) {
            if (insnOpcode == Opcodes.MONITORENTER) {
                monitorEnter(local);
            } else {
                monitorExit(local);
            }
        }

    } else {
        super.execute(insn, interpreter);
    }
}
 
开发者ID:jesusc,项目名称:eclectic,代码行数:33,代码来源:MonitoringFrame.java

示例5: MethodAnalyzer

import org.objectweb.asm.tree.analysis.Interpreter; //导入依赖的package包/类
/**
 * Constructor.
 *
 * @param interpreter the interpreter to use
 */
public MethodAnalyzer(final Interpreter<V> interpreter) {
  super(interpreter);
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:9,代码来源:MethodAnalyzer.java


注:本文中的org.objectweb.asm.tree.analysis.Interpreter类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。