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
\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
\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
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
} 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
}\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