📄 analysecases.java
字号:
if (('a' <= content.charAt(i) && 'z' >= content.charAt(i)) || ('A' <= content.charAt(i) && 'Z' >= content.charAt(i)))
{
token = token + content.charAt(i);
i++;
continue;
}
else
{
break;
}
}
if (i < content.length())
{
if (content.charAt(i) == '+' || content.charAt(i) == '-' || content.charAt(i) == '*' ||
content.charAt(i) == '/' || content.charAt(i) == '(' || content.charAt(i) == ')' ||
content.charAt(i) == '[' || content.charAt(i) == ']' || content.charAt(i) == ';' ||
content.charAt(i) == '{' || content.charAt(i) == '}' || content.charAt(i) == '=' ||
content.charAt(i) == '<' || content.charAt(i) == '>' || content.charAt(i) == ' ' ||
content.charAt(i) == '\n')
{
//if (token[token.length() - 1] == '_')
if (token.charAt(token.length() - 1) == '_')
{
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法标识符");
endPlace = i - 1;
endPlaceArray.add(endPlace);
}
else
{
arrayToken.add(token);
endPlace = i - 1;
errorType.add("correct");
endPlaceArray.add(endPlace);
identifier = token;
AnalyseCases isKey = new AnalyseCases();
if (isKey.IsKeyWord(identifier) == true)
{
arrayType.add("保留字");
}
else
{
arrayType.add("标识符");
}
}
}
else
{
for (int j = i; j < content.length(); j++)
{
if (content.charAt(j) == '+' || content.charAt(j) == '-' || content.charAt(j) == '*' ||
content.charAt(j) == '/' || content.charAt(j) == '(' || content.charAt(j) == ')' ||
content.charAt(j) == '[' || content.charAt(j) == ']' || content.charAt(j) == ';' ||
content.charAt(j) == '{' || content.charAt(j) == '}' || content.charAt(j) == '=' ||
content.charAt(j) == '<' || content.charAt(j) == '>' || content.charAt(j) == ' ' ||
content.charAt(j) == '\n')
{
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法标识符");
endPlace = j - 1;
endPlaceArray.add(endPlace);
break;
}
else if (j == content.length() - 1)
{
token = token + content.charAt(j);
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法标识符");
endPlace = j;
endPlaceArray.add(endPlace);
break;
}
else
{
token = token + content.charAt(j);
}
}
}
}
else
{
//if (token[token.length() - 1] == '_')
if (token.charAt(token.length() - 1) == '_')
{
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法标识符");
endPlace = i - 1;
endPlaceArray.add(endPlace);
}
else
{
arrayToken.add(token);
endPlace = i - 1;
errorType.add("correct");
endPlaceArray.add(endPlace);
identifier = token;
AnalyseCases isKey = new AnalyseCases();
if (isKey.IsKeyWord(identifier) == true)
{
arrayType.add("保留字");
}
else
{
arrayType.add("标识符");
}
}
}
}
else
{
identifier = token;
arrayToken.add(curch);
arrayType.add("标识符");
errorType.add("correct");
endPlace = startPlace;
endPlaceArray.add(endPlace);
}
}
/// <summary>
/// 判断是否为保留字
/// </summary>
/// <returns></returns>
public boolean IsKeyWord(String identifier)
{
String[] keyWord = new String[] { "if", "else", "while", "read", "write", "int", "real" };
for (int i = 0; i < 7; i++)
{
if (identifier.equals(keyWord[i]))
{
return true;
}
}
return false;
}
/// <summary>
/// 判断是否为异常符号
/// </summary>
/// <param name="startPlace"></param>
/// <param name="curch"></param>
/// <param name="content"></param>
public void IsSpecialSymbol(int startPlace, char curch, String content)
{
//token = curch.ToString();
token = java.lang.Character.toString(curch);
if ((startPlace + 1 < content.length()) && content.charAt(startPlace) != ' ' && content.charAt(startPlace) != '\n')
{
for (int i = startPlace + 1; i < content.length(); i++)
{
if (content.charAt(i) == '+' || content.charAt(i) == '-' || content.charAt(i) == '*' ||
content.charAt(i) == '/' || content.charAt(i) == '(' || content.charAt(i) == ')' ||
content.charAt(i) == '[' || content.charAt(i) == ']' || content.charAt(i) == ';' ||
content.charAt(i) == '{' || content.charAt(i) == '}' || content.charAt(i) == '=' ||
content.charAt(i) == '<' || content.charAt(i) == '>' || content.charAt(i) == ' ' ||
content.charAt(i) == '\n')
{
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法符号");
endPlace = i - 1;
endPlaceArray.add(endPlace);
break;
}
else if (i == content.length() - 1)
{
token = token + content.charAt(i);
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法符号");
endPlace = i;
endPlaceArray.add(endPlace);
break;
}
else
{
token = token + content.charAt(i);
}
}
}
else
{
arrayToken.add(token);
arrayType.add("error");
errorType.add("非法符号");
this.endPlace = startPlace;
endPlaceArray.add(endPlace);
}
}
/// <summary>
/// 获取结束位置
/// </summary>
/// <returns></returns>
public int getEndPlace()
{
return this.endPlace;
}
/// <summary>
/// 获取当前ArrayList内的值
/// </summary>
/// <returns></returns>
public ArrayList getToken()
{
int t = this.arrayToken.size();
return this.arrayToken;
}
/// <summary>
/// 返回类型ArrayList
/// </summary>
/// <returns></returns>
public ArrayList getType()
{
return this.arrayType;
}
/// <summary>
/// 返回错误ArrayList
/// </summary>
/// <returns></returns>
public ArrayList getErrorType()
{
return this.errorType;
}
/// <summary>
/// 返回结束位置ArrayList
/// </summary>
/// <returns></returns>
public ArrayList getEndPlaceArray()
{
return this.endPlaceArray;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -