📄 t_colon.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package symbols;import exceptions.ExpressionException;import exceptions.TrinaryOperationException;import exceptions.TypeMismatchedException;import java.util.ArrayList;/** * * @author Beeven */public class T_COLON extends Terminal implements TerminalReduce{ public Expr reduce(ArrayList<Expr> stack) throws ExpressionException { int post=stack.size()-1; // be?ae:ae Expr a=stack.get(post); // ae Expr b=stack.get(post-1);// : Expr c=stack.get(post-2);// ae Expr d=stack.get(post-3);// ? Expr e=stack.get(post-4);//be if(!(a instanceof ArithExpr) || !(c instanceof ArithExpr)|| !(e instanceof BoolExpr)) throw new TypeMismatchedException(); if(!(d.type==Type.qm)) throw new TrinaryOperationException(); if(((BoolExpr)e).value==true) { stack.remove(post); stack.remove(post-1); stack.remove(post-3); stack.remove(post-4); return c; } else { stack.remove(post-1); stack.remove(post-2); stack.remove(post-3); stack.remove(post-4); return a; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -