@Override
    public ReturnStruct parse(String[] lines) throws InterpreterException {
        int i = 0;
        code_ = lines;
        Block b = null;
        while (i < lines.length) {
            String line = Parser.clean(lines[i]);
            String copy[] = new String[lines.length - i];
            System.arraycopy(lines, i, copy, 0, copy.length);
            ReturnStruct rs = Parser.parseLine(this, line, copy, getLine() + i);
            if (rs.block != null) {
                rs.block.setLine(i + 1 + getLine());
                if (b == null) {
                    b = rs.block;
                    this.setBody(b);
                } else {
                    b.setNext(rs.block);
                    b = rs.block;
                }
            }
            i += rs.lines;
            if (b instanceof ENDBlock) {
                this.setNext(b);
                break;
            }
        }
        return new ReturnStruct(this, i + 1);
    }