📄 interpreter.java
字号:
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 + -