]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/MigrationTools/org/tianocore/migration/Critic.java
Enhance doxygening function headers for .h file.
[mirror_edk2.git] / Tools / Source / MigrationTools / org / tianocore / migration / Critic.java
index 881d3aae2cdc8713123537462e090e1a77e6c459..09518d55fc8f379931b31c11df23c1fd67555004 100644 (file)
@@ -16,8 +16,9 @@ import java.util.regex.*;
 import java.io.*;\r
 \r
 public final class Critic {\r
+       public static final Pattern PTN_NEW_HEAD_COMMENT = Pattern.compile("^\\/\\*\\*.*?\\*\\*\\/",Pattern.DOTALL);\r
        private static final Pattern ptnheadcomment = Pattern.compile("^\\/\\*\\+\\+(.*?)\\-\\-\\*\\/",Pattern.DOTALL);\r
-       private static final Pattern ptnfunccomment = Pattern.compile("([\\};\\/\">]\\s*)([\\w\\s]*?[_\\w][_\\w\\d]*\\s*\\([^\\)\\(]*\\)\\s*)\\/\\*\\+\\+(.*?)\\-\\-\\*\\/(\\s*.*?)([\\{;])",Pattern.DOTALL);           // find function with {;">/ , may be unsafe\r
+       private static final Pattern ptnfunccomment = Pattern.compile("([\\};\\/\">]\\s*)([\\w\\s]*?[_\\w][_\\w\\d]*\\s*\\([^\\)\\(]*\\)\\s*)\\/\\*\\+\\+(.*?)\\-\\-\\*\\/(\\s*.*?)(?=[\\{;])",Pattern.DOTALL);         // find function with {;">/ , may be unsafe\r
        //private static Pattern ptncommentstructure = Pattern.compile("\\/\\*\\+\\+\\s*Routine Description:\\s*(.*?)\\s*Arguments:\\s*(.*?)\\s*Returns:\\s*(.*?)\\s*\\-\\-\\*\\/",Pattern.DOTALL);\r
        private static final Pattern ptncommentequation = Pattern.compile("([^\\s]*)\\s+-\\s+(.*)\\s*");\r
        private static Matcher mtrcommentequation;\r
@@ -26,7 +27,13 @@ public final class Critic {
        \r
        private static final int totallinelength = 82;\r
        \r
-       public static final void critic(String filepath) throws Exception {\r
+       public static final void run(String filepath) throws Exception {\r
+               if (MigrationTool.doCritic) {                                   // this is left here to set an example for future structure\r
+                       critic(filepath);\r
+               }\r
+       }\r
+       \r
+       private static final void critic(String filepath) throws Exception {\r
                if (filepath.contains(".c") || filepath.contains(".h")) {\r
                        BufferedReader rd = null;\r
                        String line = null;\r
@@ -38,7 +45,7 @@ public final class Critic {
 \r
                        wholeline = wholeline.replaceAll("\t", "  ");\r
                        wholeline = Common.replaceAll(wholeline, ptnheadcomment, "/** @file$1**/");\r
-                       wholeline = Common.replaceAll(wholeline, ptnfunccomment, "$1/**$3**/$4$2$5");\r
+                       wholeline = Common.replaceAll(wholeline, ptnfunccomment, "$1/**$3**/$4$2");\r
                        //wholeline = Common.replaceAll(wholeline, ptncommentstructure, "/**\n#%\n$1\n%#\n#%%\n$2\n%%#\n#%%%\n$3\n%%%#\n**/");\r
 \r
                        // first scan\r
@@ -50,6 +57,9 @@ public final class Critic {
                        while ((line = rd.readLine()) != null) {\r
                                if (line.matches("\\/\\*\\*")) {\r
                                        incomment = true;\r
+                                       description = false;\r
+                                       arguments = false;\r
+                                       returns = false;\r
                                        templine.append(line + "\n");\r
                                } else if (line.matches("\\*\\*\\/")) {\r
                                        incomment = false;\r
@@ -95,7 +105,11 @@ public final class Critic {
                                                } else if (inequation && line.trim().length() != 0) {\r
                                                        templine.append("#%#%" + line + "\n");\r
                                                } else {\r
-                                                       templine.append("  " + line.trim() + "\n");\r
+                                                       if (line.trim().length() == 0) {\r
+                                                               templine.append("  " + line.trim() + "\n");\r
+                                                       } else {\r
+                                                               templine.append("  @return " + line.trim() + "\n");\r
+                                                       }\r
                                                }\r
                                        }\r
                                } else {\r
@@ -177,66 +191,15 @@ public final class Critic {
                        }\r
                        wholeline = templine.toString();\r
                        //\r
-                       \r
-                       /* -----slow edition of replacefirst with stringbuffer-----\r
-                       line.append(wholeline);\r
-                       mtrfunccomment = ptnfunccomment.matcher(line);\r
-                       while (mtrfunccomment.find()) {\r
-                               line.replace(0, line.length()-1, mtrfunccomment.replaceFirst("$2$4$3$1$5"));\r
-                       }\r
-                       */\r
-                       /* -----slow edition of replacefirst with string-----\r
-                       while ((mtrfunccomment = ptnfunccomment.matcher(wholeline)).find()) {\r
-                               //funccomment = mtrfunccomment.group(2);\r
-                               //mtrcommentstructure = ptncommentstructure.matcher(funccomment);\r
-                               wholeline = mtrfunccomment.replaceFirst("$2$4$3$1$5");\r
-                       }\r
-                       */\r
-                       /*\r
-                       // edit func comment\r
-                       mtrtempcomment = ptntempcomment.matcher(wholeline);\r
-                       while (mtrtempcomment.find()) {\r
-                               System.out.println("-----------------------------");\r
-                               System.out.println(mtrtempcomment.group());\r
-                               System.out.println("-----------------------------");\r
-                       }\r
-                       */\r
+\r
                        Common.string2file(wholeline, filepath);\r
                }\r
        }\r
        \r
        public static final void fireAt(String path) throws Exception {\r
                //Common.toDoAll(Common.dirCopy_(path), Critic.class.getMethod("critic", String.class), null, null, Common.FILE);\r
-               Common.toDoAll(path, Critic.class.getMethod("critic", String.class), null, null, Common.FILE);\r
+               Common.toDoAll(path, Critic.class.getMethod("run", String.class), null, null, Common.FILE);\r
                //Common.toDoAll(Common.dirCopy_(path), critic, Common.FILE);\r
                System.out.println("Critic Done");\r
        }\r
-}\r
-//analyze func comment\r
-/*if (mtrcommentstructure.find()) {\r
-       newcomment.append("/*++\n\n" + mtrcommentstructure.group(1) + "\n\n");\r
-       \r
-       //System.out.println("-------1-------");\r
-       //System.out.println(mtrcommentstructure.group(1));\r
-       \r
-       // arg\r
-       //System.out.println("-------2-------");\r
-       //System.out.println(mtrcommentstructure.group(2));\r
-       mtrinfequation = ptninfequation.matcher(mtrcommentstructure.group(2));\r
-       while (mtrinfequation.find()) {\r
-               newcomment.append("@param   " + mtrinfequation.group(1) + "            " + mtrinfequation.group(2) + "\n");\r
-               //System.out.println("@param   " + mtrinfequation.group(1) + "   " + mtrinfequation.group(2));\r
-       }\r
-       newcomment.append("\n");\r
-       // return\r
-       //System.out.println("-------3-------");\r
-       //System.out.println(mtrcommentstructure.group(3));\r
-       mtrinfequation = ptninfequation.matcher(mtrcommentstructure.group(3));\r
-       while (mtrinfequation.find()) {\r
-               newcomment.append("@retval   " + mtrinfequation.group(1) + "            " + mtrinfequation.group(2) + "\n");\r
-               //System.out.println("@retval   " + mtrinfequation.group(1) + "   " + mtrinfequation.group(2));\r
-       }\r
-       System.out.println(newcomment);\r
-} else {\r
-       System.out.println("Error: Comment Style Incorrect");\r
-}*/
\ No newline at end of file
+}
\ No newline at end of file