📄 instruction.java
字号:
package scriptedit.data;import java.io.*;/** * <p>Title: Instruction</p> * <p>Description: 四元式指令 2006年3月29日</p> * <p>Copyright: CoCoMo Copyright (c) 2006</p> * <p>Company: 9you</p> * @author 郭昉 * @version 1.2 */public class Instruction { //与FUNCTION不同,这里是虚拟机指令 //虚拟机指令号 > 0; 异常 < 0; 0值暂定 public static final String PUSH = "push"; //压参数: push t public static final String POPU = "popu"; //popu op pop num2; pop num1; push num1 op num2; public static final String IF = "if"; //if t t: 跳转指令数 public static final String JUMP = "jump"; //jump t t: 跳转指令数 public static final String PCALL = "pcall"; //pcall t t: 函数标识符 public static final String CALP = "calp"; //计算 结果压栈: push t1 op t2 public static final String BREAK = "break"; //非虚拟机指令,标识用 public static final String RETURN = "return"; public static final String CONTINUE = "continue"; //非虚拟机指令,标识用 public static final String STOP = "stop"; public static final int PUSH_ID = 1; public static final int POPU_ID = 2; public static final int IF_ID = 3; public static final int JUMP_ID = 4; public static final int PCALL_ID = 5; public static final int CALU_ID = 6; public static final int BREAK_ID = 7; public static final int RETURN_ID = 8; public static final int CONTINUE_ID = 9; public static final int STOP_ID = 10; private String name; private Teminal num1; private Teminal num2; private Teminal op; public Instruction() { } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setNum1(Teminal t) { num1 = t; } public Teminal getNum1() { return num1; } public void setNum2(Teminal t) { num2 = t; } public Teminal getNum2() { return num2; } public void setOp(Teminal t) { op = t; } public Teminal getOp() { return op; } public int getID() throws IOException { if(name.equals(PUSH)) { return PUSH_ID; } else if(name.equals(POPU)) { return POPU_ID; } else if(name.equals(IF)) { return IF_ID; } else if(name.equals(JUMP)) { return JUMP_ID; } else if(name.equals(PCALL)) { return PCALL_ID; } else if(name.equals(CALP)) { return CALU_ID; } else if(name.equals(BREAK)) { return BREAK_ID; } else if(name.equals(RETURN)) { return RETURN_ID; } else if(name.equals(CONTINUE)) { return CONTINUE_ID; } else if(name.equals(STOP)) { return STOP_ID; } else { throw new IOException("Instruction's Name:" + name + " Error!"); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -