use of com.googlecode.aviator.code.interpreter.ir.AssertTypeIR 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);
}
}
use of com.googlecode.aviator.code.interpreter.ir.AssertTypeIR in project aviatorscript by killme2008.
the class InterpretCodeGenerator method onJoinRight.
@Override
public void onJoinRight(final Token<?> lookhead) {
if (!OperationRuntime.containsOpFunction(this.compileEnv, OperatorType.AND)) {
emit(new AssertTypeIR(AssertTypes.Bool));
Label label = popLabel0();
visitLabel(label);
} else {
emit(OperatorIR.OR);
}
}
use of com.googlecode.aviator.code.interpreter.ir.AssertTypeIR in project aviatorscript by killme2008.
the class InterpretCodeGenerator method onAndRight.
@Override
public void onAndRight(final Token<?> lookhead) {
if (!OperationRuntime.containsOpFunction(this.compileEnv, OperatorType.AND)) {
emit(new AssertTypeIR(AssertTypes.Bool));
Label label = popLabel0();
visitLabel(label);
} else {
emit(OperatorIR.AND);
}
}
use of com.googlecode.aviator.code.interpreter.ir.AssertTypeIR in project aviatorscript by killme2008.
the class InterpretCodeGenerator method onAndLeft.
@Override
public void onAndLeft(final Token<?> lookhead) {
if (!OperationRuntime.containsOpFunction(this.compileEnv, OperatorType.AND)) {
emit(new AssertTypeIR(AssertTypes.Bool));
Label label = makeLabel();
pushLabel0(label);
this.instruments.add(new BranchUnlessIR(label, new SourceInfo(this.sourceFile, lookhead.getLineNo())));
emit(PopIR.INSTANCE);
}
}
Aggregations