⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interpreter.java

📁 用JAVA实现的miniSQL
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 32"); 
    		        mean=0;
    		        return 0;
    	        }	
                firstIndex=endIndex+1;
                endIndex = s.indexOf(')',firstIndex);
                tempIndex=endIndex;
                if(endIndex==-1){
    		        System.out.println("Interpreter 33"); 
    		        mean=0;
    		        return 0;
                }
                while(endIndex-1>firstIndex){
                    if(s.charAt(endIndex-1)==' ')
                	    endIndex--;
                	else
                		break;
                }
                if(endIndex-1==firstIndex){
    		        System.out.println("Interpreter 34"); 
    		        mean=0;
    		        return 0;
    	        }
    	        uniqueatt = s.substring(firstIndex,endIndex);
    	        endIndex = s.indexOf(')',tempIndex);
                if(endIndex==-1){
    		        System.out.println("Interpreter 35"); 
    		        mean=0;
    		        return 0;
                }
    	        while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                	else
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 36"); 
    		        mean=0;
    		        return 0;
    	        }	
                firstIndex=endIndex+1;
                if(s.charAt(firstIndex)!=';')
                {
                	System.out.println("Interpreter 37"); 
    		        mean=0;
    		        return 0;
                }
    		}    
    		else{
    			System.out.println("Interpreter 38");
    			mean = 0;
    			return 0;
    		}
    	}
    	else if(operate.equalsIgnoreCase("drop")){
    		while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                	else
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 39"); 
    		        mean=0;
    		        return 0;
    	    }	
            firstIndex=endIndex+1;
    		tempIndex = endIndex;
    		endIndex = s.indexOf(' ', tempIndex+1);
    		if(endIndex==-1) 
    		{
    		    endIndex = s.indexOf('\n',tempIndex+1);
    	        if(endIndex==-1){
    		         System.out.println("Interpreter 40"); 
    		         mean=0;
    		         return 0;
    	        }
    		}
    		else if(s.substring(firstIndex,endIndex).indexOf('\n')>=0)
    		    endIndex = s.substring(firstIndex,endIndex).indexOf('\n')+firstIndex;
    		operate = s.substring(firstIndex, endIndex);
    		if(operate.equalsIgnoreCase("table")){                   //删除表  2
    			mean = 2;
    			firstIndex = endIndex;
                while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                	else
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 41"); 
    		        mean=0;
    		        return 0;
    	        }	
                firstIndex=endIndex+1;
                endIndex = s.indexOf(' ', firstIndex);
    		    if(endIndex==-1) 
    		    {
    		        endIndex = s.indexOf(';',firstIndex);
    	            if(endIndex==-1){
    		             System.out.println("Interpreter 42"); 
    		             mean=0;
    		             return 0;
    	            }
    	     	}
    		    else if(s.substring(firstIndex,endIndex).indexOf('\n')>=0)
    		        endIndex = s.substring(firstIndex,endIndex).indexOf('\n')+firstIndex;
                table = s.substring(firstIndex, endIndex);
                if(s.charAt(endIndex)==';')
                	return 1;
                while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                	else
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 43"); 
    		        mean=0;
    		        return 0;
    	        }	
                firstIndex=endIndex+1;
                if(s.charAt(firstIndex)!=';')
                {
                	System.out.println("Interpreter 44"); 
    		        mean=0;
    		        return 0;
                }
    		}
    		else if(operate.equalsIgnoreCase("index")){             //删除索引  4
    			mean = 4;
    			firstIndex = endIndex;
                while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                	else
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 45"); 
    		        mean=0;
    		        return 0;
    	        }	
                firstIndex=endIndex+1;
                endIndex = s.indexOf(' ', firstIndex);
    		    if(endIndex==-1) 
    		    {
    		        endIndex = s.indexOf(';',firstIndex);
    	            if(endIndex==-1){
    		             System.out.println("Interpreter 46"); 
    		             mean=0;
    		             return 0;
    	            }
    	     	}
    		    else if(s.substring(firstIndex,endIndex).indexOf('\n')>=0)
    		        endIndex = s.substring(firstIndex,endIndex).indexOf('\n')+firstIndex;
                indexname = s.substring(firstIndex, endIndex);
                if(s.charAt(endIndex)==';')
                	return 1;
                while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                	else
                		break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 47"); 
    		        mean=0;
    		        return 0;
    	        }	
                firstIndex=endIndex+1;
                if(s.charAt(firstIndex)!=';')
                {
                	System.out.println("Interpreter 48"+s.charAt(firstIndex)); 
    		        mean=0;
    		        return 0;
                }
    		}
    		else{
    			System.out.println("Interpreter 49"); 
    		    mean=0;
    		    return 0;
    		}
    	}
    	else if(operate.equalsIgnoreCase("select")){                 //查询语句  5
    		mean = 5;
            firstIndex = endIndex;
            while(endIndex+1<s.length()){
                if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	endIndex++;
                else
                	break;
            }
            if(endIndex+1==s.length()){
    		    System.out.println("Interpreter 50"); 
    		    mean=0;
    		    return 0;
    	    }
    	    firstIndex=endIndex+1;
    	    attnumber=1;
    	    if(s.charAt(firstIndex)=='*'){
    	    	attnumber=0;
    	    	firstIndex=endIndex=firstIndex+1;
    	    }
    	    else{
    	    	tempIndex=firstIndex;
    	    	while(true){
    	    	    tempIndex=s.indexOf(',', tempIndex);
    	    	    if(tempIndex!=-1)
    	    		    attnumber++;
    	    	    else
    	    		    break;
    	    	    endIndex=s.indexOf("from", tempIndex);
    	    	    if(endIndex==-1){
    	    		    attnumber--;
    	    		    break;
    	    	    }
    	    	    tempIndex++;
    	    	}
    	    	firstIndex=endIndex=firstIndex;
    	    }
    	    if(attnumber!=0){
    	    	attribute = new String[attnumber];
    	    	for(int i=0;i<attnumber;i++){
                    endIndex = s.indexOf(',', firstIndex);
                    tempIndex=endIndex;
    		        if(endIndex==-1) 
    		        {
    		            endIndex = s.indexOf(' ',firstIndex);
    	                if(endIndex==-1){
    	                	endIndex = s.indexOf('\n',firstIndex);
    	                	if(endIndex==-1){
    		                    System.out.println("Interpreter 51"); 
    		                    mean=0;
    		                    return 0;
    	                	}
    	                }
    	                else if(s.substring(firstIndex,endIndex).indexOf('\n')>=0)
    		                endIndex = s.substring(firstIndex,endIndex).indexOf('\n')+firstIndex;
    	                tempIndex=endIndex;
    	            }
    		        else if(s.substring(firstIndex,endIndex).indexOf(' ')>=0)
    		            endIndex = s.substring(firstIndex,endIndex).indexOf(' ')+firstIndex;
                    attribute[i] = s.substring(firstIndex, endIndex);
                    firstIndex=endIndex=tempIndex;
                    while(endIndex+1<s.length()){
                        if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	        endIndex++;
                        else
                	        break;
                    }
                    if(endIndex+1==s.length()){
    		            System.out.println("Interpreter 52"); 
    		            mean=0;
    		            return 0;
    	            }
    	            firstIndex=endIndex+1;
    	        }
    	    }
    	    else{
    	    	while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                    else
                	    break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 53"); 
    		        mean=0;
    		        return 0;
    	        }
    	        firstIndex=endIndex+1;
    	    }
    	    endIndex=s.indexOf("from", firstIndex);
    	    endIndex=endIndex+4;
    		while(endIndex+1<s.length()){
                if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	endIndex++;
                else
                	break;
            }
            if(endIndex+1==s.length()){
    		    System.out.println("Interpreter 54"); 
    		    mean=0;
    		    return 0;
    	    }
    	    firstIndex=endIndex+1;
    	    endIndex = s.indexOf(' ', firstIndex);
    		if(endIndex==-1) 
    		{
    		    endIndex = s.indexOf('\n',firstIndex);
    	        if(endIndex==-1){
    	        	 if(s.indexOf("where",firstIndex)<0)
    	        	 	 endIndex = s.indexOf(';',firstIndex);
    	        	 if(endIndex == -1){
    		             System.out.println("Interpreter 55"); 
    		             mean=0;
    		             return 0;
    	        	 }
    	        }
    	    }
    		else if(s.substring(firstIndex,endIndex).indexOf('\n')>=0)
    		    endIndex = s.substring(firstIndex,endIndex).indexOf('\n')+firstIndex;
    		table = s.substring(firstIndex, endIndex);
    		opnumber=1;
    		endIndex = s.indexOf("where", endIndex);
    		if(endIndex==-1)
    		{
    			opnumber=0;
    			return 1;
    		}
    		tempIndex=endIndex;
    		while(true){
    			tempIndex=s.indexOf("and", tempIndex+1);
    			if(tempIndex==-1)
    				break;
    			opnumber++;
    		}
    		endIndex=endIndex+5;
    		opatt = new String[opnumber];
    		opcode = new int[opnumber];
    		op2 = new String[opnumber];
    		ischar = new boolean[opnumber];
    		while(endIndex+1<s.length()){
                if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	endIndex++;
                else
                	break;
            }
    	    firstIndex=endIndex+1;
    		for(int i=0;i<opnumber;i++){
    			endIndex = s.indexOf(' ',firstIndex);
    			if(endIndex == -1){
    				System.out.println("Interpreter 56");
    				mean = 0;
    				return 0;
    			}
    			opatt[i]=s.substring(firstIndex, endIndex);
    			while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                    else
                	    break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interpreter 57"); 
    		        mean=0;
    		        return 0;
    	        }
    	        firstIndex=endIndex+1;
    	        if(s.substring(firstIndex,firstIndex+2).equalsIgnoreCase("= ")){
    	            opcode[i] = 1;
    	        }
    	        else if(s.substring(firstIndex,firstIndex+2).equalsIgnoreCase("<>")){
    	        	opcode[i] = 2;
    	        }
    	        else if(s.substring(firstIndex,firstIndex+2).equalsIgnoreCase("< ")){
    	        	opcode[i] = 3;
    	        }
    	        else if(s.substring(firstIndex,firstIndex+2).equalsIgnoreCase("> ")){
    	        	opcode[i] = 4;
    	        }
    	        else if(s.substring(firstIndex,firstIndex+2).equalsIgnoreCase("<=")){
    	        	opcode[i] = 5;
    	        }
    	        else if(s.substring(firstIndex,firstIndex+2).equalsIgnoreCase(">=")){
    	        	opcode[i] = 6;
    	        }
    	        else{
    	        	System.out.println("Interprete 58"); 
    		        mean=0;
    		        return 0;
    	        }
    	        endIndex=firstIndex=firstIndex+1;
    	        while(endIndex+1<s.length()){
                    if((s.charAt(endIndex+1)==' '||s.charAt(endIndex+1)=='\n'))
                	    endIndex++;
                    else
                	    break;
                }
                if(endIndex+1==s.length()){
    		        System.out.println("Interprete 59"); 
    		        mean=0;
    		        return 0;
    	        }
    	        firstIndex=endIndex+1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -