Search in sources :

Example 1 with BranchIfIR

use of com.googlecode.aviator.code.interpreter.ir.BranchIfIR in project aviatorscript by killme2008.

the class InterpretCodeGenerator method onJoinLeft.

@Override
public void onJoinLeft(final Token<?> lookhead) {
    if (!OperationRuntime.containsOpFunction(this.compileEnv, OperatorType.AND)) {
        emit(new AssertTypeIR(AssertTypes.Bool));
        Label label = makeLabel();
        pushLabel0(label);
        this.instruments.add(new BranchIfIR(label, new SourceInfo(this.sourceFile, lookhead.getLineNo())));
        emit(PopIR.INSTANCE);
    }
}
Also used : SourceInfo(com.googlecode.aviator.code.interpreter.ir.SourceInfo) Label(com.googlecode.aviator.code.interpreter.ir.Label) AssertTypeIR(com.googlecode.aviator.code.interpreter.ir.AssertTypeIR) BranchIfIR(com.googlecode.aviator.code.interpreter.ir.BranchIfIR)

Aggregations

AssertTypeIR (com.googlecode.aviator.code.interpreter.ir.AssertTypeIR)1 BranchIfIR (com.googlecode.aviator.code.interpreter.ir.BranchIfIR)1 Label (com.googlecode.aviator.code.interpreter.ir.Label)1 SourceInfo (com.googlecode.aviator.code.interpreter.ir.SourceInfo)1