case
1:{showMessage(ErrorCode.ArithmeticException,errMsg);break;}
case
2:{showMessage(ErrorCode.InputParamErrException,errMsg);break;}
case
3:{showMessage(ErrorCode.VariableException,errMsg);break;}
case
4:{showMessage(ErrorCode.FunctionException,errMsg);break;}
default:{showMessage(ErrorCode.VariableException,errMsg);break;}
}
}
private static void showMessage(ErrorCode errCode, String errMsg){
System.err.println("Error-"+errCode.toString()+": "+errMsg);
errFlag=true;
}
}
错误信息类,在编译过程中,除了 C0 检测到的一些语法错误,可能会发生一些其他的
错误,例如重复定义变量等,我们在错误信息类中列举了常见的错误信息,当发生错
误时可以通知用户。
主类(未编译的 JavaCC 文件,编译后会自动生成一些词法和语法的辅助类):
Java 代码部分:
主函数:
public static void main(String args[]);
新建变量函数:
Token:单词信息,Type:空间类型(0-全局空间,1-局部空间)
public static void createSymbol(Token t,int type);
新建函数函数:
Token:单词信息,Type:返回值类型(0-void,1-int)
public static void createFunction(Token t,int type);
开辟变量空间函数:
Type:空间类型(0-全局空间,1-局部空间)
public static void createSymbolSpace(int type);
生成存取变量指令函数:
Token:单词信息,Type:操作类型(0-取操作 LOD,1-存操作 STO)
public static void getVariableByName(Token t, int type);
生成调用函数指令函数: