brainfack语言解析器

来源:互联网 发布:windows密码破解工具 编辑:程序博客网 时间:2024/06/06 18:53
public class Demo {    public static void main(String[] args) {        String src = "++++++++++[>+++++>++++++++++<<-]>++++++++++++++++++++++.>+.+++++++..+++.----------------.<+++++.>+++++++++++++++++++.<-------------------------------.>-----.------------.";        Interpreter interpreter = new Interpreter();        interpreter.run(src);    }}
public class Interpreter {    private byte[] data = new byte[3000];    private int point;    private int index;    public void run(String src) {        run(src, src.length());           }    public void run(String src, int end){        while (index < end){            switch (src.charAt(index)) {                case '+':                    data[point]++;                    break;                case '-':                    data[point]--;                    break;                case '>':                    point++;                    break;                case '<':                    point--;                    break;                case '[':                    int temp = index;                    int count = 0;                    int e = index+1;                    while (count != 0 || src.charAt(e) != ']') {                        if (src.charAt(e) == '[') {                            count++;                        }                        if (src.charAt(e) == ']') {                            count--;                        }                        e++;                    }                    while (data[point] != 0) {                        index = temp + 1;                        run(src, e);                    }                    break;                case ']':                    break;                case ',':                    try {                        data[point] = (byte) System.in.read();                    } catch (IOException ex) {                        ex.printStackTrace();                    }                    break;                case '.':                    System.out.printf("%c", data[point]);                    break;            }            index++;        }    }}


0 0
原创粉丝点击