вторник, 20 марта 2012 г.

Про техподдержку Google #2

Пока жду тех поддержки от Гугл, родился текст интерпретатора для языка программирования BrainFuck Вроде тестировал - держит все команды - все 6!!! )))

package em;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class AlgBf {
  public static int rezVyv=1;
  private static String strInt="";
  public static String zapAlg(char[] s){

String rez="";
int i=0;
int[] p=new int[30000];
int lvlin=0;

for(int k=0;k<p.length;k++){
p[k]=0;
}
int n=0;

while(i<s.length){
switch (s[i]){
 case '+': p[n]++; break;
 case '-': p[n]--; break;
 case '>': n++; break;
 case '<': n--; break;
 case '.':
 if (AlgBf.rezVyv==0){
    rez=rez+(p[n])+" ";
 }
 else {
rez=rez+((char)p[n]);
 }
 break;

 case ',':

 if (true){
   InputStreamReader is = new InputStreamReader(System.in);
   BufferedReader bis = new BufferedReader(is);
   try {
    strInt = bis.readLine();
   p[n]=Integer.parseInt(strInt,10);
   } catch (IOException e) {
e.printStackTrace();
    }
 }

 case '[':

 if (p[n]==0){
 lvlin=1;
 while(lvlin>=1){
i++;
if (s[i]=='[') {lvlin++;};
if (s[i]==']') {lvlin--;};
 }
 }
    break;
 
 case ']':
lvlin=1;
while(lvlin>=1){
   i--;
   if (s[i]==']') {lvlin++;};
if (s[i]=='[') {lvlin--;};
}
i--;
    break;
 
  default:
}
i++;
}
return rez;
  }
}

Комментариев нет:

Отправить комментарий