private static void search(char[] ch) {
String s = "" ;
int de = 0;
char a;
boolean isImport = false;//是否为关键字
boolean isNum =false;//是否为数字
boolean isId = false;//是否为字符串
boolean isBi= false;//是否为单个操作符
boolean isBiM = false;//是狗为组合操作符
String[] proter = { "int", "main", "char", "if", "else", "for", "while" };
int i = 0;
while (i < ch.length) {
String pr = "";
while (ch[i] != ' ' ){
if((ch[i] <= 'z') && (ch[i]>='a') || (ch[i] <='Z') && (ch[i] >='A'))
//System.out.print(ch[i]);
isId = true;
if((ch[i]<='9') && (ch[i]>='0'))
//System.out.print(ch[i]);
isNum = true;
switch (ch[i]) {
case '=':
if(ch[i+1] == '='){
de=39;
s="==";
isBiM = true;
i++;
//System.out.print(s);
}
else
de = 21;
isBi = true;
break;
case '>':
if(ch[i+1] == '='){
de=37;
s=">=";
isBiM = true;
i++;
//System.out.print(s);
}
else
de=35;
isBi = true;
break;
case ']':
de=29;
isBi=true;
break;
case '{':
de=30;
isBi=true;
break;
case '}':
de=31;
isBi=true;
break;
case ':':
de=33;
isBi=true;
break;
case ';':
de=34;
isBi=true;
break;
case '.':
de=32;
isBi=true;
break;
case '<':
if(ch[i+1] == '='){
de=38;
s="<=";
isBiM = true;
i++;
//System.out.print(s);
}
else
de=36;
isBi=true;
break;
case '*':
de=24;
isBi = true;
break;
case '+':
de=22;
isBi=true;
break;
case '-':
de=23;
isBi = true;
break;
case '/':
de=25;
isBi = true;
break;
case '(':
de=26;
isBi = true;
break;
case ')':
de=27;
isBi = true;
break;
case '#':
de=0;
isBi =true;
break;
}
if((ch[i] == '!') && (ch[i+1] == '=')){
de=40;
s="!=";
isBiM = true;
i++;
}
if(isBi){
break;
}
pr += ch[i++];
}
// System.out.print(pr);
////判断关键字
for (int j = 0; j < proter.length; j++) {
if (pr.equals(proter[j])){
isImport = true;
System.out.println("(" + (j + 1) + "," + proter[j] + ")");
}
}
//字母或字母数字串
if(isId && !isImport)
System.out.println("(" +10+ "," + pr+ ")");
//数字
if(!isId && isNum )
System.out.println("(" +20+ "," + pr+ ")");
//单个专用符号
if(isBi && !isBiM)
System.out.println("("+de+","+ch[i]+")");
//组合符号
if(isBiM)
System.out.println("("+de+","+s+")");
//else System.out.println("("+-1+","+"ERRO"+")");
i++;
isId = false;
isNum = false;
isImport = false;
isBi = false;
isBiM=false;
// System.out.print("("+);
}
}