📄 semanticerror.java
字号:
package edu.ustc.cs.minijool.parser;
import java.io.PrintStream;
/**
* 这里提供了程序的基本语义错误方式,希望能对您的实验有所帮助。当然,您也可以
* 添加新的错误
*/
public class SemanticError {
private static PrintStream out = System.err;
// class Position
// Error messages (the numbers correspond to the PA4 handout)
public static void error_1_DoubleDeclaration(
ErrorPosition pos,
String idName) {
if (pos != null)
out.print(pos);
out.println("Duplicate declaration of identifier " + idName + ".");
}
public static void error_2_NoDeclaration(
ErrorPosition pos,
String idName) {
if (pos != null)
out.print(pos);
out.println("Identifier " + idName + " not defined.");
}
public static void error_3_ProgramClassError(ErrorPosition pos) {
if (pos != null)
out.print(pos);
out.println(
"Class Program is missing, is multiply defined, or lacks a suitable main method.");
}
public static void error_4_CallArguments(
ErrorPosition pos,
String idName) {
if (pos != null)
out.print(pos);
out.println("Argument mismatch in a call to method " + idName + ".");
}
public static void error_5_MethodResult(ErrorPosition pos, String idName) {
if (pos != null)
out.print(pos);
out.println(
"Method "
+ idName
+ " used in an expression does not return a result value.");
}
public static void error_6_VoidReturn(ErrorPosition pos, String idName) {
if (pos != null)
out.print(pos);
out.println("Method " + idName + " must not return a value.");
}
public static void error_7_NonVoidReturn(
ErrorPosition pos,
String idName) {
if (pos != null)
out.print(pos);
out.println("Method " + idName + " must return a value.");
}
public static void error_8_BooleanExpression (ErrorPosition pos) {
if (pos != null)
out.print(pos);
out.println(
"The conditional expression in if and while statements must be of type boolean.");
}
public static void error_9_IntExpression (ErrorPosition pos) {
if (pos != null)
out.print(pos);
out.println(
"The expression must be of type int.");
}
public static void error_10_EqConformingTypes (ErrorPosition pos) {
if (pos != null)
out.print(pos);
out.println(
"The operands of equality operators must have conforming types.");
}
public static void error_11_CondTypes (ErrorPosition pos) {
if (pos != null)
out.print(pos);
out.println(
"The operands of &&, ||, and ! must be boolean.");
}
public static void error_12_AssignmentType (ErrorPosition pos) {
if (pos != null)
out.print(pos);
out.println(
"The rhs in the assignment must conform to the lhs type.");
}
public static void error_13_ReturnEnd (ErrorPosition pos, String idName) {
if (pos != null)
out.print(pos);
out.println(
"The procedure "+idName+" must end with a return statement.");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -