package com.hhl.operation;
//import com.hhl.storetable.*;
public class Sort {
public static String result = "";
public static String sampleTable = "";
public static String erroInfo = "";
//private StorePreparation preparation = new StorePreparation();
//private StoreKeyword keyword = new StoreKeyword();
//private StoreDelimiter delimiter = new StoreDelimiter();
public void inspect(String s) {
if (Character.isDigit(s.charAt(0))) {
try{
inspectDigit(s);
}catch(Exception e){
erroInfo = erroInfo + s +"常数错误\r\n";
}
} else if (s.length() == 1) {
inspectChar(s.charAt(0));
} else {
inspectString(s);
}
}
public void inspectDigit(String s) {
if (s.indexOf(".") == -1) {
if(Character.isDigit(s.charAt(s.length()-1))){
result =result+s + ",种别码为35\n";
return;
}else{
erroInfo = erroInfo + s + "常数错误\r\n";
}
} else {
result = result+Double.valueOf(s).toString() + ",种别码为36\n";
return;
}
}
public void inspectChar(char s) {
switch(s){
case '+' : result = result + s + ",种别码为24\r\n"; break;
case '-' : result = result + s + ",种别码为25\r\n"; break;
case '*' : result = result + s + ",种别码为26\r\n"; break;
case '/' : result = result + s+ ",种别码为27\r\n"; break;
case '<' : result = result + s + ",种别码为28\r\n"; break;
case '>' : result = result + s + ",种别码为29\r\n"; break;
case '=' : result = result + s + ",种别码为32\r\n"; break;
case ';' : result = result + s + ",种别码为39\r\n"; break;
case ',' : result = result + s + ",种别码为40\r\n"; break;
case '\'' : result = result + s + ",种别码为41\r\n"; break;
case '"' : result = result + s + ",种别码为42\r\n"; break;
case '(' : result = result + s + ",种别码为47\r\n"; break;
case ')' : result = result + s + ",种别码为48\r\n"; break;
case '.' : result = result + s + ",种别码为49\r\n"; break;
case '@' : erroInfo = erroInfo + s + "非法字符"; break;
case '#' : erroInfo = erroInfo + s + "非法字符"; break;
case '~' : erroInfo = erroInfo + s + "非法字符"; break;
case '`' : erroInfo = erroInfo + s + "非法字符"; break;
case '‘' : erroInfo = erroInfo + s + "非法字符"; break;
case '’' : erroInfo = erroInfo + s + "非法字符"; break;
case '”' : erroInfo = erroInfo + s + "非法字符"; break;
case '“' : erroInfo = erroInfo + s + "非法字符"; break;
default : result = result + s + ",种别码为34\r\n";
sampleTable = sampleTable + "名称:"+s+" 长度:1"+"token:34"+"\r\n"; break;
}
}
public void inspectString(String s) {
if(s.charAt(0)=='\''){
result = result + s + ",种别码为37\r\n";
}else if(s.charAt(0)=='"'){
result = result + s + ",种别码为37\r\n";
}else if(s.equals("program")){
result = result + s + ",种别码为1\r\n";
}else if(s.equals("var")){
result = result + s + ",种别码为2\r\n";
}else if(s.equals("integer")){
result = result + s + ",种别码为3\r\n";
}else if(s.equals("bool")){
result = result + s + ",种别码为4\r\n";
}else if(s.equals("real")){
result = result + s + ",种别码为5\r\n";
}else if(s.equals("char")){
result = result + s + ",种别码为6\r\n";
}else if(s.equals("const")){
result = result + s + ",种别码为7\r\n";
}else if(s.equals("begin")){
result = result + s + ",种别码为8\r\n";
}else if(s.equals("if")){
result = result + s+ ",种别码为9\r\n";
}else if(s.equals("then")){
result = result + s + ",种别码为10\r\n";
}else if(s.equals("else")){
result = result + s + ",种别码为11\r\n";
}else if(s.equals("while")){
result = result + s + ",种别码为12\r\n";
}else if(s.equals("do")){
result = result + s + ",种别码为13\r\n";
}else if(s.equals("repeat")){
result = result + s + ",种别码为14\r\n";
}else if(s.equals("until")){
result = result + s + ",种别码为15\r\n";
}else if(s.equals("for")){
result = result + s + ",种别码为16\r\n";
}else if(s.equals("to")){
result = result + s + ",种别码为17\r\n";
}else if(s.equals("not")){
result = result + s + ",种别码为21\r\n";
}else if(s.equals("and")){
result = result + s + ",种别码为22\r\n";
}else if(s.equals("or")){
result = result + s + ",种别码为23\r\n";
}else if(s.equals("//")){
result = result + s + ",种别码为43\r\n";
}else if(s.equals("<=")){
result = result + s + ",种别码为30\r\n";
}else if(s.equals(">=")){
result = result + s + ",种别码为31\r\n";
}else if(s.equals(":=")){
result = result + s + ",种别码为33\r\n";
}else if(s.charAt(0)=='/'){
result = result + s + ",注释\r\n";
}else if(s.charAt(0)=='@'||s.charAt(0)=='#'||s.charAt(0)=='$'){
erroInfo = erroInfo + s + "为非法字符";
}else{
result = result + s + ",种别码为34\r\n";
sampleTable = sampleTable + "名称:"+s+" 长度:"+s.length()+"token:34"+"\r\n";
}
}
public static void main(String args[]){
String s = "program test\r\na:=b";
new StringOperate().stringOperate(s);
System.out.print(result);
}
}