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

📄 codeswitcher.java

📁 一个用java写的开源的数据库系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        longline = true;                    } else {                        longline = false;                    }                }                write.write(line + ls);            }            read.close();            write.flush();            write.close();            File fbak = new File(name + ".bak");            fbak.delete();            f.renameTo(fbak);            File fcopy = new File(name);            fnew.renameTo(fcopy);            fbak.delete();        } catch (Exception e) {            printError(e.getMessage());        }    }    /**     * Method declaration     *     *     * @param name     *     * @return     */    int testFile(String name) {        File f = new File(name);        try {            LineNumberReader read = new LineNumberReader(new FileReader(f));            int              l        = 1,                             maxline  = 0;            boolean          longline = false;            while (true) {                String line = read.readLine();                if (line == null) {                    break;                }                if (line.length() > MAX_LINELENGTH                        &&!line.startsWith("org.hsqldb.test.Profile.")) {                    System.out.println("long line in " + name + " at line "                                       + l);                }                if (line.startsWith(" ")) {                    int spaces = 0;                    for (; spaces < line.length(); spaces++) {                        if (line.charAt(spaces) != ' ') {                            break;                        }                    }                    if (spaces > 3 && testLine(line) &&!longline) {                        maxline++;                    } else if (isLongline(line)) {                        longline = true;                    } else {                        longline = false;                    }                    String s = line.substring(spaces);                    if (s.startsWith("if(")) {                        if (!s.endsWith(" {")) {                            System.out.println("if( without { in " + name                                               + " at line " + l);                        }                    } else if (s.startsWith("} else if(")) {                        if (!s.endsWith(" {")) {                            System.out.println("} else if without { in "                                               + name + " at line " + l);                        }                    } else if (s.startsWith("while(")) {                        if (!s.endsWith(" {")) {                            System.out.println("while( without { in " + name                                               + " at line " + l);                        }                    } else if (s.startsWith("switch(")) {                        if (!s.endsWith(" {")) {                            System.out.println("switch( without { in " + name                                               + " at line " + l);                        }                    } else if (s.startsWith("do ")) {                        if (!s.endsWith(" {")) {                            System.out.println("do without { in " + name                                               + " at line " + l);                        }                    }                }                l++;            }            read.close();            return maxline;        } catch (Exception e) {            printError(e.getMessage());        }        return -1;    }    /**     * Method declaration     *     *     * @param line     *     * @return     */    boolean testLine(String line) {        if (!line.endsWith(";")) {            return false;        }        if (line.trim().startsWith("super(")) {            return false;        }        return true;    }    /**     * Method declaration     *     *     * @param s     *     * @return     */    boolean isLongline(String s) {        char c = s.charAt(s.length() - 1);        if (",(+-&|".indexOf(c) >= 0) {            return true;        }        return false;    }    /**     * Method declaration     *     *     * @param name     *     * @return     */    boolean processFile(String name) {        File    f         = new File(name);        File    fnew      = new File(name + ".new");        int     state     = 0;    // 0=normal 1=inside_if 2=inside_else        boolean switchoff = false;        boolean working   = false;        try {            Vector v  = getFileLines(f);            Vector v1 = new Vector(v.size());            for (int i = 0; i < v.size(); i++) {                v1.addElement(v.elementAt(i));            }            for (int i = 0; i < v.size(); i++) {                String line = (String) v.elementAt(i);                if (line == null) {                    break;                }                if (working) {                    if (line.equals("/*") || line.equals("*/")) {                        v.removeElementAt(i--);                        continue;                    }                }                if (line.startsWith("//#")) {                    if (line.startsWith("//#ifdef ")) {                        if (state != 0) {                            printError(                                "'#ifdef' not allowed inside '#ifdef'");                            return false;                        }                        state = 1;                        String s = line.substring(9);                        if (vSwitchOn.indexOf(s) != -1) {                            working   = true;                            switchoff = false;                        } else if (vSwitchOff.indexOf(s) != -1) {                            working = true;                            v.insertElementAt("/*", ++i);                            switchoff = true;                        }                        if (vSwitches.indexOf(s) == -1) {                            vSwitches.addElement(s);                        }                    } else if (line.startsWith("//#else")) {                        if (state != 1) {                            printError("'#else' without '#ifdef'");                            return false;                        }                        state = 2;                        if (!working) {}                        else if (switchoff) {                            if (v.elementAt(i - 1).equals("")) {                                v.insertElementAt("*/", i - 1);                                i++;                            } else {                                v.insertElementAt("*/", i++);                            }                            switchoff = false;                        } else {                            v.insertElementAt("/*", ++i);                            switchoff = true;                        }                    } else if (line.startsWith("//#endif")) {                        if (state == 0) {                            printError("'#endif' without '#ifdef'");                            return false;                        }                        state = 0;                        if (working && switchoff) {                            if (v.elementAt(i - 1).equals("")) {                                v.insertElementAt("*/", i - 1);                                i++;                            } else {                                v.insertElementAt("*/", i++);                            }                        }                        working = false;                    } else {}                }            }            if (state != 0) {                printError("'#endif' missing");                return false;            }            boolean filechanged = false;            for (int i = 0; i < v.size(); i++) {                if (!v1.elementAt(i).equals(v.elementAt(i))) {                    filechanged = true;                    break;                }            }            if (!filechanged) {                return true;            }            writeFileLines(v, fnew);            File fbak = new File(name + ".bak");            fbak.delete();            f.renameTo(fbak);            File fcopy = new File(name);            fnew.renameTo(fcopy);            fbak.delete();            return true;        } catch (Exception e) {            printError(e.getMessage());            return false;        }    }    static Vector getFileLines(File f) throws IOException {        LineNumberReader read = new LineNumberReader(new FileReader(f));        Vector           v    = new Vector();        for (;;) {            String line = read.readLine();            if (line == null) {                break;            }            v.addElement(line);        }        read.close();        return v;    }    static void writeFileLines(Vector v, File f) throws IOException {        FileWriter write = new FileWriter(f);        for (int i = 0; i < v.size(); i++) {            write.write((String) v.elementAt(i));            write.write(ls);        }        write.flush();        write.close();    }    /**     * Method declaration     *     *     * @param error     */    static void printError(String error) {        System.out.println("");        System.out.println("ERROR: " + error);    }}

⌨️ 快捷键说明

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