diff options
15 files changed, 1844 insertions, 1844 deletions
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Common.java b/Tools/Source/MigrationTools/org/tianocore/migration/Common.java index 5c8629c..23e2319 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Common.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Common.java @@ -18,191 +18,191 @@ import java.util.*; import java.lang.reflect.*;
public final class Common {
- public static final int BOTH = 0;
- public static final int FILE = 1;
- public static final int DIR = 2;
-
- public static final String strseparate = "(.*)\\\\([^\\\\]*)";
- public static final Pattern ptnseparate = Pattern.compile("(.*)\\\\([^\\\\]*)");
+ public static final int BOTH = 0;
+ public static final int FILE = 1;
+ public static final int DIR = 2;
+
+ public static final String strseparate = "(.*)\\\\([^\\\\]*)";
+ public static final Pattern ptnseparate = Pattern.compile("(.*)\\\\([^\\\\]*)");
- //-------------------------------------regex------------------------------------------//
-
- public static final String replaceAll(String line, Pattern ptn, String des) {
- Matcher mtr = ptn.matcher(line);
+ //-------------------------------------regex------------------------------------------//
+
+ public static final String replaceAll(String line, Pattern ptn, String des) {
+ Matcher mtr = ptn.matcher(line);
- if (mtr.find()) {
- return mtr.replaceAll(des);
- }
-
- return line;
- }
+ if (mtr.find()) {
+ return mtr.replaceAll(des);
+ }
+
+ return line;
+ }
- //-------------------------------------regex------------------------------------------//
-
- //-----------------------------------file&string---------------------------------------//
-
- public static final String file2string(String filename) throws Exception {
- BufferedReader rd = new BufferedReader(new FileReader(filename));
- StringBuffer wholefile = new StringBuffer();
- String line;
- while ((line = rd.readLine()) != null) {
- wholefile.append(line + "\n");
- }
- return wholefile.toString();
- }
+ //-------------------------------------regex------------------------------------------//
+
+ //-----------------------------------file&string---------------------------------------//
+
+ public static final String file2string(String filename) throws Exception {
+ BufferedReader rd = new BufferedReader(new FileReader(filename));
+ StringBuffer wholefile = new StringBuffer();
+ String line;
+ while ((line = rd.readLine()) != null) {
+ wholefile.append(line + "\n");
+ }
+ return wholefile.toString();
+ }
- public static final void string2file(String content, String filename) throws Exception {
- ensureDir(filename);
- PrintWriter outfile = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
- outfile.append(content);
- outfile.flush();
- outfile.close();
- }
+ public static final void string2file(String content, String filename) throws Exception {
+ ensureDir(filename);
+ PrintWriter outfile = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
+ outfile.append(content);
+ outfile.flush();
+ outfile.close();
+ }
- //-----------------------------------file&string---------------------------------------//
+ //-----------------------------------file&string---------------------------------------//
- //--------------------------------------dir--------------------------------------------//
- /*
- public static final HashSet<String> walkDir(String path, int mode) throws Exception {
- HashSet<String> pathlist = new HashSet<String>();
- Common.toDoAll(path, Common.class.getMethod("walkDir", String.class), null, null, mode);
- return pathlist;
- }
- */
- public static final void ensureDir(String objFileWhole) {
- File tempdir;
- Matcher mtrseparate = ptnseparate.matcher(objFileWhole);
- if (mtrseparate.find()) {
- tempdir = new File(mtrseparate.group(1));
- if (!tempdir.exists()) tempdir.mkdirs();
- }
- }
-
- public static final void deleteDir(String objFileWhole) {
- String[] list = new File(objFileWhole).list();
- File temp;
- for (int i = 0 ; i < list.length ; i++) {
- temp = new File(objFileWhole + File.separator + list[i]);
- if (temp.isDirectory()) {
- deleteDir(objFileWhole + File.separator + list[i]);
- } else {
- temp.delete();
- }
- }
- new File(objFileWhole).delete();
- }
-
- public static final String dirCopy_(String src) throws Exception {
- Matcher mtrseparate = Common.ptnseparate.matcher(src);
- if (mtrseparate.find()) {
- dirCopy(src, mtrseparate.group(1) + File.separator + "_" + mtrseparate.group(2));
- }
- return mtrseparate.group(1) + File.separator + "_" + mtrseparate.group(2);
- }
-
- public static final void dirCopy(String src, String des) throws Exception {
- String[] list = new File(src).list();
- File test;
+ //--------------------------------------dir--------------------------------------------//
+ /*
+ public static final HashSet<String> walkDir(String path, int mode) throws Exception {
+ HashSet<String> pathlist = new HashSet<String>();
+ Common.toDoAll(path, Common.class.getMethod("walkDir", String.class), null, null, mode);
+ return pathlist;
+ }
+ */
+ public static final void ensureDir(String objFileWhole) {
+ File tempdir;
+ Matcher mtrseparate = ptnseparate.matcher(objFileWhole);
+ if (mtrseparate.find()) {
+ tempdir = new File(mtrseparate.group(1));
+ if (!tempdir.exists()) tempdir.mkdirs();
+ }
+ }
+
+ public static final void deleteDir(String objFileWhole) {
+ String[] list = new File(objFileWhole).list();
+ File temp;
+ for (int i = 0 ; i < list.length ; i++) {
+ temp = new File(objFileWhole + File.separator + list[i]);
+ if (temp.isDirectory()) {
+ deleteDir(objFileWhole + File.separator + list[i]);
+ } else {
+ temp.delete();
+ }
+ }
+ new File(objFileWhole).delete();
+ }
+
+ public static final String dirCopy_(String src) throws Exception {
+ Matcher mtrseparate = Common.ptnseparate.matcher(src);
+ if (mtrseparate.find()) {
+ dirCopy(src, mtrseparate.group(1) + File.separator + "_" + mtrseparate.group(2));
+ }
+ return mtrseparate.group(1) + File.separator + "_" + mtrseparate.group(2);
+ }
+
+ public static final void dirCopy(String src, String des) throws Exception {
+ String[] list = new File(src).list();
+ File test;
- for (int i = 0 ; i < list.length ; i++) {
- test = new File(src + File.separator + list[i]);
- if (test.isDirectory()) {
- dirCopy(src + File.separator + list[i], des + File.separator + list[i]);
- } else {
- ensureDir(des + File.separator + list[i]);
- string2file(file2string(src + File.separator + list[i]), des + File.separator + list[i]);
- }
- }
- }
+ for (int i = 0 ; i < list.length ; i++) {
+ test = new File(src + File.separator + list[i]);
+ if (test.isDirectory()) {
+ dirCopy(src + File.separator + list[i], des + File.separator + list[i]);
+ } else {
+ ensureDir(des + File.separator + list[i]);
+ string2file(file2string(src + File.separator + list[i]), des + File.separator + list[i]);
+ }
+ }
+ }
- //--------------------------------------dir--------------------------------------------//
+ //--------------------------------------dir--------------------------------------------//
- //-------------------------------like python walk-----------------------------------------//
-
- public static final void toDoAll(String path, Method md, Object obj, Object[] args, int type) throws Exception {
- String[] list = new File(path).list();
- ArrayList<Object> _args = new ArrayList<Object>();
-
- _args.add(path);
- if (args != null) {
- for (int i = 0; i < args.length; i++) {
- _args.add(args[i]);
- }
- }
+ //-------------------------------like python walk-----------------------------------------//
+
+ public static final void toDoAll(String path, Method md, Object obj, Object[] args, int type) throws Exception {
+ String[] list = new File(path).list();
+ ArrayList<Object> _args = new ArrayList<Object>();
+
+ _args.add(path);
+ if (args != null) {
+ for (int i = 0; i < args.length; i++) {
+ _args.add(args[i]);
+ }
+ }
- if (type == DIR || type == BOTH) {
- md.invoke(obj, _args.toArray());
- }
- for (int i = 0 ; i < list.length ; i++) {
- if (new File(path + File.separator + list[i]).isDirectory()) {
- toDoAll(path + File.separator + list[i], md, obj, args, type);
- } else {
- if (type == FILE || type == BOTH) {
- _args.set(0, path + File.separator + list[i]);
- md.invoke(obj, _args.toArray());
- }
- }
- }
- }
+ if (type == DIR || type == BOTH) {
+ md.invoke(obj, _args.toArray());
+ }
+ for (int i = 0 ; i < list.length ; i++) {
+ if (new File(path + File.separator + list[i]).isDirectory()) {
+ toDoAll(path + File.separator + list[i], md, obj, args, type);
+ } else {
+ if (type == FILE || type == BOTH) {
+ _args.set(0, path + File.separator + list[i]);
+ md.invoke(obj, _args.toArray());
+ }
+ }
+ }
+ }
- public static final void toDoAll(Set<String> set, ForDoAll fda) throws Exception {
- Iterator<String> di = set.iterator();
- while (di.hasNext()) {
- fda.run(di.next());
- }
- }
-
- public static final void toDoAll(String path, ForDoAll fda, int type) throws Exception { // filter of file type can be done in toDo
- String[] list = new File(path).list();
- File test;
+ public static final void toDoAll(Set<String> set, ForDoAll fda) throws Exception {
+ Iterator<String> di = set.iterator();
+ while (di.hasNext()) {
+ fda.run(di.next());
+ }
+ }
+
+ public static final void toDoAll(String path, ForDoAll fda, int type) throws Exception { // filter of file type can be done in toDo
+ String[] list = new File(path).list();
+ File test;
- if (type == DIR || type == BOTH) {
- fda.run(path);
- }
- for (int i = 0 ; i < list.length ; i++) {
- test = new File(path + File.separator + list[i]);
- if (test.isDirectory()) {
- if (fda.filter(test)) {
- toDoAll(path + File.separator + list[i], fda, type);
- }
- } else {
- if (type == FILE || type == BOTH) {
- fda.run(path + File.separator + list[i]);
- }
- }
- }
- }
-
- public static interface ForDoAll {
- public void run(String filepath) throws Exception;
-
- public boolean filter(File dir);
- }
-
- public static abstract class Laplace {
- public void transform(String src, String des) throws Exception {
- Common.string2file(operation(Common.file2string(src)), des);
- }
-
- public abstract String operation(String wholeline);
-
- public abstract boolean recognize(String filename);
-
- public abstract String namechange(String oldname);
- }
-
- public static interface Element {
-
-// public int replace = 0;
-// public int type = 1;
-
- public String getReplace(String key);
-
-// public void getType(String key);
-//
-// public void setReplace(int num);
-//
-// public void setType(int num);
-
- }
+ if (type == DIR || type == BOTH) {
+ fda.run(path);
+ }
+ for (int i = 0 ; i < list.length ; i++) {
+ test = new File(path + File.separator + list[i]);
+ if (test.isDirectory()) {
+ if (fda.filter(test)) {
+ toDoAll(path + File.separator + list[i], fda, type);
+ }
+ } else {
+ if (type == FILE || type == BOTH) {
+ fda.run(path + File.separator + list[i]);
+ }
+ }
+ }
+ }
+
+ public static interface ForDoAll {
+ public void run(String filepath) throws Exception;
+
+ public boolean filter(File dir);
+ }
+
+ public static abstract class Laplace {
+ public void transform(String src, String des) throws Exception {
+ Common.string2file(operation(Common.file2string(src)), des);
+ }
+
+ public abstract String operation(String wholeline);
+
+ public abstract boolean recognize(String filename);
+
+ public abstract String namechange(String oldname);
+ }
+
+ public static interface Element {
+
+// public int replace = 0;
+// public int type = 1;
+
+ public String getReplace(String key);
+
+// public void getType(String key);
+//
+// public void setReplace(int num);
+//
+// public void setType(int num);
+
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Critic.java b/Tools/Source/MigrationTools/org/tianocore/migration/Critic.java index c987b9f..45670d9 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Critic.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Critic.java @@ -16,192 +16,192 @@ import java.util.regex.*; import java.io.*;
public final class Critic {
- public static final Pattern PTN_NEW_HEAD_COMMENT = Pattern.compile("^\\/\\*\\*.*?\\*\\*\\/",Pattern.DOTALL);
- private static final Pattern ptnheadcomment = Pattern.compile("^\\/\\*\\+\\+(.*?)\\-\\-\\*\\/",Pattern.DOTALL);
- private static final Pattern ptnfunccomment = Pattern.compile("([\\};\\/\">]\\s*)([\\w\\s\\*]*?[_\\w][_\\w\\d]*\\s*\\([^\\)\\(]*\\)\\s*)\\/\\*\\+\\+(.*?)\\-\\-\\*\\/(\\s*.*?)(?=[\\{;])",Pattern.DOTALL); // find function with {;">/ , may be unsafe
- //private static Pattern ptncommentstructure = Pattern.compile("\\/\\*\\+\\+\\s*Routine Description:\\s*(.*?)\\s*Arguments:\\s*(.*?)\\s*Returns:\\s*(.*?)\\s*\\-\\-\\*\\/",Pattern.DOTALL);
- private static final Pattern ptncommentequation = Pattern.compile("([^\\s]*)\\s+-\\s+(.*)\\s*");
- private static Matcher mtrcommentequation;
- private static final Pattern ptnnewcomment = Pattern.compile("(\\s*@(param|retval)\\s+[^\\s]+)\\s+(.*)");
- private static Matcher mtrnewcomment;
-
- private static final int totallinelength = 82;
-
- public static final void run(String filepath) throws Exception {
- if (MigrationTool.doCritic) { // this is left here to set an example for future structure
- critic(filepath);
- }
- }
-
- private static final void critic(String filepath) throws Exception {
- if (filepath.contains(".c") || filepath.contains(".h")) {
- BufferedReader rd = null;
- String line = null;
- StringBuffer templine = new StringBuffer();
- boolean incomment = false;
+ public static final Pattern PTN_NEW_HEAD_COMMENT = Pattern.compile("^\\/\\*\\*.*?\\*\\*\\/",Pattern.DOTALL);
+ private static final Pattern ptnheadcomment = Pattern.compile("^\\/\\*\\+\\+(.*?)\\-\\-\\*\\/",Pattern.DOTALL);
+ private static final Pattern ptnfunccomment = Pattern.compile("([\\};\\/\">]\\s*)([\\w\\s\\*]*?[_\\w][_\\w\\d]*\\s*\\([^\\)\\(]*\\)\\s*)\\/\\*\\+\\+(.*?)\\-\\-\\*\\/(\\s*.*?)(?=[\\{;])",Pattern.DOTALL); // find function with {;">/ , may be unsafe
+ //private static Pattern ptncommentstructure = Pattern.compile("\\/\\*\\+\\+\\s*Routine Description:\\s*(.*?)\\s*Arguments:\\s*(.*?)\\s*Returns:\\s*(.*?)\\s*\\-\\-\\*\\/",Pattern.DOTALL);
+ private static final Pattern ptncommentequation = Pattern.compile("([^\\s]*)\\s+-\\s+(.*)\\s*");
+ private static Matcher mtrcommentequation;
+ private static final Pattern ptnnewcomment = Pattern.compile("(\\s*@(param|retval)\\s+[^\\s]+)\\s+(.*)");
+ private static Matcher mtrnewcomment;
+
+ private static final int totallinelength = 82;
+
+ public static final void run(String filepath) throws Exception {
+ if (MigrationTool.doCritic) { // this is left here to set an example for future structure
+ critic(filepath);
+ }
+ }
+
+ private static final void critic(String filepath) throws Exception {
+ if (filepath.contains(".c") || filepath.contains(".h")) {
+ BufferedReader rd = null;
+ String line = null;
+ StringBuffer templine = new StringBuffer();
+ boolean incomment = false;
- System.out.println("Criticing " + filepath);
- String wholeline = Common.file2string(filepath);
+ System.out.println("Criticing " + filepath);
+ String wholeline = Common.file2string(filepath);
- wholeline = wholeline.replaceAll("\t", " ");
- wholeline = Common.replaceAll(wholeline, ptnheadcomment, "/** @file$1**/");
- wholeline = Common.replaceAll(wholeline, ptnfunccomment, "$1/**$3**/$4$2");
- //wholeline = Common.replaceAll(wholeline, ptncommentstructure, "/**\n#%\n$1\n%#\n#%%\n$2\n%%#\n#%%%\n$3\n%%%#\n**/");
+ wholeline = wholeline.replaceAll("\t", " ");
+ wholeline = Common.replaceAll(wholeline, ptnheadcomment, "/** @file$1**/");
+ wholeline = Common.replaceAll(wholeline, ptnfunccomment, "$1/**$3**/$4$2");
+ //wholeline = Common.replaceAll(wholeline, ptncommentstructure, "/**\n#%\n$1\n%#\n#%%\n$2\n%%#\n#%%%\n$3\n%%%#\n**/");
- // first scan
- boolean description = false;
- boolean arguments = false;
- boolean returns = false;
- boolean inequation = false;
- rd = new BufferedReader(new StringReader(wholeline));
- while ((line = rd.readLine()) != null) {
- if (line.matches("\\/\\*\\*")) {
- incomment = true;
- description = false;
- arguments = false;
- returns = false;
- templine.append(line + "\n");
- } else if (line.matches("\\*\\*\\/")) {
- incomment = false;
- templine.append("\n" + line + "\n");
- } else if (incomment) {
- if (line.contains("Routine Description:")) {
- description = true;
- arguments = false;
- returns = false;
- } else if (line.contains("Arguments:")) {
- description = false;
- arguments = true;
- returns = false;
- templine.append("\n");
- } else if (line.contains("Returns:")) {
- description = false;
- arguments = false;
- returns = true;
- templine.append("\n");
- } else if (description) {
- if (line.trim().length() != 0) {
- templine.append(" " + line.trim() + "\n");
- }
- } else if (arguments) {
- mtrcommentequation = ptncommentequation.matcher(line);
- if (mtrcommentequation.find()) {
- inequation = true;
- templine.append(" @param " + mtrcommentequation.group(1) + " " + mtrcommentequation.group(2) + "\n");
- } else if (inequation && line.trim().length() == 0) {
- inequation = false;
- } else if (inequation && line.trim().length() != 0) {
- templine.append("#%#%" + line + "\n");
- } else {
- if (line.trim().length() != 0) {
- templine.append(" " + line.trim() + "\n");
- }
- }
- } else if (returns) {
- mtrcommentequation = ptncommentequation.matcher(line);
- if (mtrcommentequation.find()) {
- inequation = true;
- templine.append(" @retval " + mtrcommentequation.group(1) + " " + mtrcommentequation.group(2) + "\n");
- } else if (inequation && line.trim().length() == 0) {
- inequation = false;
- } else if (inequation && line.trim().length() != 0) {
- templine.append("#%#%" + line + "\n");
- } else {
- if (line.trim().length() != 0) {
- templine.append(" @return " + line.trim() + "\n");
- }
- }
- }
- } else {
- templine.append(line + "\n");
- }
- }
- wholeline = templine.toString();
- wholeline = wholeline.replaceAll("\n#%#%\\s*", " ");
- //
-
- // secend scan
- int startmax = 0;
- rd = new BufferedReader(new StringReader(wholeline));
- while ((line = rd.readLine()) != null) {
- if (line.matches("\\/\\*\\*")) {
- incomment = true;
- templine.append(line + "\n");
- } else if (line.matches("\\*\\*\\/")) {
- incomment = false;
- templine.append(line + "\n");
- } else if (incomment) {
- mtrnewcomment = ptnnewcomment.matcher(line);
- if (mtrnewcomment.find()) {
- startmax = mtrnewcomment.group(1).length() > startmax ? mtrnewcomment.group(1).length() : startmax;
- }
- }
- }
- startmax++;
- //
-
- // third scan
- int n = 0;
- String temp = null;
- String[] tempcont = null;
- int count = 0;
- templine = new StringBuffer();
- rd = new BufferedReader(new StringReader(wholeline));
- while ((line = rd.readLine()) != null) {
- if (line.matches("\\/\\*\\*")) {
- incomment = true;
- templine.append(line + "\n");
- } else if (line.matches("\\*\\*\\/")) {
- incomment = false;
- templine.append(line + "\n");
- } else if (incomment) {
- mtrnewcomment = ptnnewcomment.matcher(line);
- if (mtrnewcomment.find()) {
- n = startmax - mtrnewcomment.group(1).length();
- templine.append(mtrnewcomment.group(1));
- while (n-- >= 0) {
- templine.append(" ");
- }
- temp = mtrnewcomment.group(3);
- tempcont = temp.split(" "); // use \\s+ ?
-
- count = 0;
- for (int i = 0; i < tempcont.length; i++) {
- count += tempcont[i].length();
- if (count <= (totallinelength - startmax)) {
- templine.append(tempcont[i] + " ");
- count += 1;
- } else {
- templine.append("\n");
- n = startmax;
- while (n-- >= 0) {
- templine.append(" ");
- }
- templine.append(tempcont[i] + " ");
- count = tempcont[i].length() + 1;
- }
- }
- templine.append("\n");
- } else {
- templine.append(line + "\n");
- }
- } else {
- templine.append(line + "\n");
- }
- }
- wholeline = templine.toString();
- //
- // Remove trailing blanks.
- //
- wholeline = wholeline.replaceAll (" +\n", "\n");
- Common.string2file(wholeline, filepath);
- }
- }
-
- public static final void fireAt(String path) throws Exception {
- //Common.toDoAll(Common.dirCopy_(path), Critic.class.getMethod("critic", String.class), null, null, Common.FILE);
- Common.toDoAll(path, Critic.class.getMethod("run", String.class), null, null, Common.FILE);
- //Common.toDoAll(Common.dirCopy_(path), critic, Common.FILE);
- System.out.println("Critic Done");
- }
+ // first scan
+ boolean description = false;
+ boolean arguments = false;
+ boolean returns = false;
+ boolean inequation = false;
+ rd = new BufferedReader(new StringReader(wholeline));
+ while ((line = rd.readLine()) != null) {
+ if (line.matches("\\/\\*\\*")) {
+ incomment = true;
+ description = false;
+ arguments = false;
+ returns = false;
+ templine.append(line + "\n");
+ } else if (line.matches("\\*\\*\\/")) {
+ incomment = false;
+ templine.append("\n" + line + "\n");
+ } else if (incomment) {
+ if (line.contains("Routine Description:")) {
+ description = true;
+ arguments = false;
+ returns = false;
+ } else if (line.contains("Arguments:")) {
+ description = false;
+ arguments = true;
+ returns = false;
+ templine.append("\n");
+ } else if (line.contains("Returns:")) {
+ description = false;
+ arguments = false;
+ returns = true;
+ templine.append("\n");
+ } else if (description) {
+ if (line.trim().length() != 0) {
+ templine.append(" " + line.trim() + "\n");
+ }
+ } else if (arguments) {
+ mtrcommentequation = ptncommentequation.matcher(line);
+ if (mtrcommentequation.find()) {
+ inequation = true;
+ templine.append(" @param " + mtrcommentequation.group(1) + " " + mtrcommentequation.group(2) + "\n");
+ } else if (inequation && line.trim().length() == 0) {
+ inequation = false;
+ } else if (inequation && line.trim().length() != 0) {
+ templine.append("#%#%" + line + "\n");
+ } else {
+ if (line.trim().length() != 0) {
+ templine.append(" " + line.trim() + "\n");
+ }
+ }
+ } else if (returns) {
+ mtrcommentequation = ptncommentequation.matcher(line);
+ if (mtrcommentequation.find()) {
+ inequation = true;
+ templine.append(" @retval " + mtrcommentequation.group(1) + " " + mtrcommentequation.group(2) + "\n");
+ } else if (inequation && line.trim().length() == 0) {
+ inequation = false;
+ } else if (inequation && line.trim().length() != 0) {
+ templine.append("#%#%" + line + "\n");
+ } else {
+ if (line.trim().length() != 0) {
+ templine.append(" @return " + line.trim() + "\n");
+ }
+ }
+ }
+ } else {
+ templine.append(line + "\n");
+ }
+ }
+ wholeline = templine.toString();
+ wholeline = wholeline.replaceAll("\n#%#%\\s*", " ");
+ //
+
+ // secend scan
+ int startmax = 0;
+ rd = new BufferedReader(new StringReader(wholeline));
+ while ((line = rd.readLine()) != null) {
+ if (line.matches("\\/\\*\\*")) {
+ incomment = true;
+ templine.append(line + "\n");
+ } else if (line.matches("\\*\\*\\/")) {
+ incomment = false;
+ templine.append(line + "\n");
+ } else if (incomment) {
+ mtrnewcomment = ptnnewcomment.matcher(line);
+ if (mtrnewcomment.find()) {
+ startmax = mtrnewcomment.group(1).length() > startmax ? mtrnewcomment.group(1).length() : startmax;
+ }
+ }
+ }
+ startmax++;
+ //
+
+ // third scan
+ int n = 0;
+ String temp = null;
+ String[] tempcont = null;
+ int count = 0;
+ templine = new StringBuffer();
+ rd = new BufferedReader(new StringReader(wholeline));
+ while ((line = rd.readLine()) != null) {
+ if (line.matches("\\/\\*\\*")) {
+ incomment = true;
+ templine.append(line + "\n");
+ } else if (line.matches("\\*\\*\\/")) {
+ incomment = false;
+ templine.append(line + "\n");
+ } else if (incomment) {
+ mtrnewcomment = ptnnewcomment.matcher(line);
+ if (mtrnewcomment.find()) {
+ n = startmax - mtrnewcomment.group(1).length();
+ templine.append(mtrnewcomment.group(1));
+ while (n-- >= 0) {
+ templine.append(" ");
+ }
+ temp = mtrnewcomment.group(3);
+ tempcont = temp.split(" "); // use \\s+ ?
+
+ count = 0;
+ for (int i = 0; i < tempcont.length; i++) {
+ count += tempcont[i].length();
+ if (count <= (totallinelength - startmax)) {
+ templine.append(tempcont[i] + " ");
+ count += 1;
+ } else {
+ templine.append("\n");
+ n = startmax;
+ while (n-- >= 0) {
+ templine.append(" ");
+ }
+ templine.append(tempcont[i] + " ");
+ count = tempcont[i].length() + 1;
+ }
+ }
+ templine.append("\n");
+ } else {
+ templine.append(line + "\n");
+ }
+ } else {
+ templine.append(line + "\n");
+ }
+ }
+ wholeline = templine.toString();
+ //
+ // Remove trailing blanks.
+ //
+ wholeline = wholeline.replaceAll (" +\n", "\n");
+ Common.string2file(wholeline, filepath);
+ }
+ }
+
+ public static final void fireAt(String path) throws Exception {
+ //Common.toDoAll(Common.dirCopy_(path), Critic.class.getMethod("critic", String.class), null, null, Common.FILE);
+ Common.toDoAll(path, Critic.class.getMethod("run", String.class), null, null, Common.FILE);
+ //Common.toDoAll(Common.dirCopy_(path), critic, Common.FILE);
+ System.out.println("Critic Done");
+ }
}
\ No newline at end of file diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Database.java b/Tools/Source/MigrationTools/org/tianocore/migration/Database.java index c986d3b..68ddf40 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Database.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Database.java @@ -17,170 +17,170 @@ import java.util.*; import java.util.regex.*;
public final class Database {
- private static final Database INSTANCE = Database.init();
-
- Database(String path) {
- DatabasePath = path;
+ private static final Database INSTANCE = Database.init();
+
+ Database(String path) {
+ DatabasePath = path;
- try {
- importDBLib("Library.csv");
- importDBGuid("Guid.csv", "Guid");
- importDBGuid("Ppi.csv", "Ppi");
- importDBGuid("Protocol.csv", "Protocol");
- importDBMacro("Macro.csv");
- importListR8Only();
- } catch (Exception e) {
- System.out.println(e.getMessage());
- }
- }
-
- public String DatabasePath;
- public Set<String> error = new HashSet<String>();
- public Set<String> r8only = new HashSet<String>();
-
- private Map<String,Guid> hashguid = new HashMap<String,Guid>();
- private Map<String,Func> hashfunc = new HashMap<String,Func>();
- private Map<String,Macro> hashmacro = new HashMap<String,Macro>();
-
- //-------------------------------------import------------------------------------------//
-
- private void importDBLib(String filename) throws Exception {
- BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename));
- String line;
- String[] linecontext;
- Func lf;
-
- if (rd.ready()) {
- System.out.println("Found " + filename + ", Importing Library Database.");
- while ((line = rd.readLine()) != null) {
- if (line.length() != 0) {
- linecontext = line.split(",");
- lf = new Func(linecontext);
- hashfunc.put(lf.r8funcname,lf);
- }
- }
- }
- }
-
- private void importDBGuid(String filename, String type) throws Exception {
- BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename));
- String line;
- String[] linecontext;
- Guid gu;
-
- if (rd.ready()) {
- System.out.println("Found " + filename + ", Importing " + type + " Database.");
- while ((line = rd.readLine()) != null) {
- if (line.length() != 0) {
- linecontext = line.split(",");
- gu = new Guid(linecontext, type);
- hashguid.put(gu.r8name,gu);
- }
- }
- }
- }
-
- private void importDBMacro(String filename) throws Exception {
- BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename));
- String line;
- String[] linecontext;
- Macro mc;
-
- if (rd.ready()) {
- System.out.println("Found " + filename + ", Importing Macro Database.");
- while ((line = rd.readLine()) != null) {
- if (line.length() != 0) {
- linecontext = line.split(",");
- mc = new Macro(linecontext);
- hashmacro.put(mc.r8name,mc);
- }
- }
- }
- }
+ try {
+ importDBLib("Library.csv");
+ importDBGuid("Guid.csv", "Guid");
+ importDBGuid("Ppi.csv", "Ppi");
+ importDBGuid("Protocol.csv", "Protocol");
+ importDBMacro("Macro.csv");
+ importListR8Only();
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+
+ public String DatabasePath;
+ public Set<String> error = new HashSet<String>();
+ public Set<String> r8only = new HashSet<String>();
+
+ private Map<String,Guid> hashguid = new HashMap<String,Guid>();
+ private Map<String,Func> hashfunc = new HashMap<String,Func>();
+ private Map<String,Macro> hashmacro = new HashMap<String,Macro>();
+
+ //-------------------------------------import------------------------------------------//
+
+ private void importDBLib(String filename) throws Exception {
+ BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename));
+ String line;
+ String[] linecontext;
+ Func lf;
+
+ if (rd.ready()) {
+ System.out.println("Found " + filename + ", Importing Library Database.");
+ while ((line = rd.readLine()) != null) {
+ if (line.length() != 0) {
+ linecontext = line.split(",");
+ lf = new Func(linecontext);
+ hashfunc.put(lf.r8funcname,lf);
+ }
+ }
+ }
+ }
+
+ private void importDBGuid(String filename, String type) throws Exception {
+ BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename));
+ String line;
+ String[] linecontext;
+ Guid gu;
+
+ if (rd.ready()) {
+ System.out.println("Found " + filename + ", Importing " + type + " Database.");
+ while ((line = rd.readLine()) != null) {
+ if (line.length() != 0) {
+ linecontext = line.split(",");
+ gu = new Guid(linecontext, type);
+ hashguid.put(gu.r8name,gu);
+ }
+ }
+ }
+ }
+
+ private void importDBMacro(String filename) throws Exception {
+ BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename));
+ String line;
+ String[] linecontext;
+ Macro mc;
+
+ if (rd.ready()) {
+ System.out.println("Found " + filename + ", Importing Macro Database.");
+ while ((line = rd.readLine()) != null) {
+ if (line.length() != 0) {
+ linecontext = line.split(",");
+ mc = new Macro(linecontext);
+ hashmacro.put(mc.r8name,mc);
+ }
+ }
+ }
+ }
- private void importListR8Only() throws Exception {
- Pattern ptnr8only = Pattern.compile("////#?(\\w*)?.*?R8_(.*?)\\s*\\(.*?////~", Pattern.DOTALL);
- String wholeline = Common.file2string(DatabasePath + File.separator + "R8Lib.c");
- System.out.println("Found " + "R8Lib.c" + ", Importing R8Lib Database.");
- Matcher mtrr8only = ptnr8only.matcher(wholeline);
- while (mtrr8only.find()) {
- r8only.add(mtrr8only.group(2));
- }
- }
-
- //-------------------------------------import------------------------------------------//
+ private void importListR8Only() throws Exception {
+ Pattern ptnr8only = Pattern.compile("////#?(\\w*)?.*?R8_(.*?)\\s*\\(.*?////~", Pattern.DOTALL);
+ String wholeline = Common.file2string(DatabasePath + File.separator + "R8Lib.c");
+ System.out.println("Found " + "R8Lib.c" + ", Importing R8Lib Database.");
+ Matcher mtrr8only = ptnr8only.matcher(wholeline);
+ while (mtrr8only.find()) {
+ r8only.add(mtrr8only.group(2));
+ }
+ }
+
+ //-------------------------------------import------------------------------------------//
- //-------------------------------------get------------------------------------------//
+ //-------------------------------------get------------------------------------------//
- public String getR9Lib(String r8funcname) {
- String temp = null;
- if (hashfunc.containsKey(r8funcname)) {
- temp = hashfunc.get(r8funcname).r9libname;
- }
- return temp;
- }
-
- public String getR9Func(String r8funcname) {
- String temp = null;
- if (hashfunc.containsKey(r8funcname)) {
- temp = hashfunc.get(r8funcname).r9funcname;
- }
- return temp;
- }
-
- public String getR9Macro(String r8macro) {
- return hashmacro.get(r8macro).r9name; // the verification job of if the macro exists in the database is done when registering it
- }
+ public String getR9Lib(String r8funcname) {
+ String temp = null;
+ if (hashfunc.containsKey(r8funcname)) {
+ temp = hashfunc.get(r8funcname).r9libname;
+ }
+ return temp;
+ }
+
+ public String getR9Func(String r8funcname) {
+ String temp = null;
+ if (hashfunc.containsKey(r8funcname)) {
+ temp = hashfunc.get(r8funcname).r9funcname;
+ }
+ return temp;
+ }
+
+ public String getR9Macro(String r8macro) {
+ return hashmacro.get(r8macro).r9name; // the verification job of if the macro exists in the database is done when registering it
+ }
- public String getR9Guidname(String r8Guid) {
- String temp = null;
- try {
- temp = hashguid.get(r8Guid).r9name;
- } catch (NullPointerException e) {
- error.add("getR9Guidname :" + r8Guid);
- }
- return temp;
- }
+ public String getR9Guidname(String r8Guid) {
+ String temp = null;
+ try {
+ temp = hashguid.get(r8Guid).r9name;
+ } catch (NullPointerException e) {
+ error.add("getR9Guidname :" + r8Guid);
+ }
+ return temp;
+ }
- public String getGuidType(String r8Guid) {
- String temp = null;
- try {
- temp = hashguid.get(r8Guid).type;
- } catch (NullPointerException e) {
- error.add("getR9Guidname :" + r8Guid);
- }
- return temp;
- }
+ public String getGuidType(String r8Guid) {
+ String temp = null;
+ try {
+ temp = hashguid.get(r8Guid).type;
+ } catch (NullPointerException e) {
+ error.add("getR9Guidname :" + r8Guid);
+ }
+ return temp;
+ }
- //-------------------------------------get------------------------------------------//
+ //-------------------------------------get------------------------------------------//
- //-------------------------------------has------------------------------------------//
+ //-------------------------------------has------------------------------------------//
- public boolean hasFunc(String r8lib) {
- return hashfunc.containsKey(r8lib);
- }
+ public boolean hasFunc(String r8lib) {
+ return hashfunc.containsKey(r8lib);
+ }
- public boolean hasGuid(String r8guid) {
- return hashguid.containsKey(r8guid);
- }
+ public boolean hasGuid(String r8guid) {
+ return hashguid.containsKey(r8guid);
+ }
- public boolean hasMacro(String r8macro) {
- return hashmacro.containsKey(r8macro);
- }
-
- //-------------------------------------has------------------------------------------//
-
- //-------------------------------------init------------------------------------------//
+ public boolean hasMacro(String r8macro) {
+ return hashmacro.containsKey(r8macro);
+ }
+
+ //-------------------------------------has------------------------------------------//
+
+ //-------------------------------------init------------------------------------------//
- private static final Database init() {
- if (System.getenv("WORKSPACE") == null) {
- return new Database("C:" + File.separator + "tianocore" + File.separator + "edk2" + File.separator + "Tools" + File.separator + "Conf" + File.separator + "Migration");
- } else {
- return new Database(System.getenv("WORKSPACE") + File.separator + "Tools" + File.separator + "Conf" + File.separator + "Migration");
- }
- }
-
- public static final Database getInstance() {
- return INSTANCE;
- }
+ private static final Database init() {
+ if (System.getenv("WORKSPACE") == null) {
+ return new Database("C:" + File.separator + "tianocore" + File.separator + "edk2" + File.separator + "Tools" + File.separator + "Conf" + File.separator + "Migration");
+ } else {
+ return new Database(System.getenv("WORKSPACE") + File.separator + "Tools" + File.separator + "Conf" + File.separator + "Migration");
+ }
+ }
+
+ public static final Database getInstance() {
+ return INSTANCE;
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/FirstPanel.java b/Tools/Source/MigrationTools/org/tianocore/migration/FirstPanel.java index ac03041..95266fc 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/FirstPanel.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/FirstPanel.java @@ -19,66 +19,66 @@ import java.util.*; import javax.swing.*;
public final class FirstPanel extends JPanel implements ActionListener, ItemListener, UI {
- /**
- * Define class Serial Version UID
- */
- private static final long serialVersionUID = 207759413522910399L;
-
- private static final FirstPanel INSTANCE = FirstPanel.init();
-
- private String startpath;
-
- private JButton moduleButton, goButton, msaEditorButton, criticButton, specifyCommentButton;
- private JTextField moduletext;
- private JTextArea log;
- private JFileChooser fc = new JFileChooser();
- private JCheckBox filebox, screenbox, mibox, criticbox, defaultpathbox;
-
- private boolean tofile = true, toscreen = true;
- private PrintWriter logfile;
+ /**
+ * Define class Serial Version UID
+ */
+ private static final long serialVersionUID = 207759413522910399L;
+
+ private static final FirstPanel INSTANCE = FirstPanel.init();
+
+ private String startpath;
+
+ private JButton moduleButton, goButton, msaEditorButton, criticButton, specifyCommentButton;
+ private JTextField moduletext;
+ private JTextArea log;
+ private JFileChooser fc = new JFileChooser();
+ private JCheckBox filebox, screenbox, mibox, criticbox, defaultpathbox;
+
+ private boolean tofile = true, toscreen = true;
+ private PrintWriter logfile;
- FirstPanel() {
+ FirstPanel() {
GridBagLayout gridbag = new GridBagLayout();
setLayout(gridbag);
- GridBagConstraints cst = new GridBagConstraints();
-
- goButton = new JButton("Go");
- goButton.addActionListener(this);
- goButton.setActionCommand("go");
-
- moduleButton = new JButton("Choose ModulePath");
- moduleButton.addActionListener(this);
+ GridBagConstraints cst = new GridBagConstraints();
+
+ goButton = new JButton("Go");
+ goButton.addActionListener(this);
+ goButton.setActionCommand("go");
+
+ moduleButton = new JButton("Choose ModulePath");
+ moduleButton.addActionListener(this);
- msaEditorButton = new JButton("MsaEditor");
- msaEditorButton.addActionListener(this);
-
- criticButton = new JButton("Critic");
- criticButton.addActionListener(this);
-
- specifyCommentButton = new JButton("Comment Style");
- specifyCommentButton.addActionListener(this);
-
- moduletext = new JTextField(30);
-
- filebox = new JCheckBox("Output to logfile", true);
- filebox.addItemListener(this);
-
- screenbox = new JCheckBox("Specify logfile", false);
- screenbox.addItemListener(this);
-
- mibox = new JCheckBox("Print ModuleInfo", false);
- mibox.addItemListener(this);
- MigrationTool.printModuleInfo = false;
-
- criticbox = new JCheckBox("Run Critic", true);
- criticbox.addItemListener(this);
- MigrationTool.doCritic = true;
-
- defaultpathbox = new JCheckBox("Use Default Output Path", true);
- defaultpathbox.addItemListener(this);
- MigrationTool.defaultoutput = true;
-
+ msaEditorButton = new JButton("MsaEditor");
+ msaEditorButton.addActionListener(this);
+
+ criticButton = new JButton("Critic");
+ criticButton.addActionListener(this);
+
+ specifyCommentButton = new JButton("Comment Style");
+ specifyCommentButton.addActionListener(this);
+
+ moduletext = new JTextField(30);
+
+ filebox = new JCheckBox("Output to logfile", true);
+ filebox.addItemListener(this);
+
+ screenbox = new JCheckBox("Specify logfile", false);
+ screenbox.addItemListener(this);
+
+ mibox = new JCheckBox("Print ModuleInfo", false);
+ mibox.addItemListener(this);
+ MigrationTool.printModuleInfo = false;
+
+ criticbox = new JCheckBox("Run Critic", true);
+ criticbox.addItemListener(this);
+ MigrationTool.doCritic = true;
+
+ defaultpathbox = new JCheckBox("Use Default Output Path", true);
+ defaultpathbox.addItemListener(this);
+ MigrationTool.defaultoutput = true;
+
JPanel modulePanel = new JPanel();
modulePanel.add(moduleButton);
modulePanel.add(moduletext);
@@ -119,163 +119,163 @@ public final class FirstPanel extends JPanel implements ActionListener, ItemList cst.fill = GridBagConstraints.BOTH;
gridbag.setConstraints(logScrollPane, cst);
add(logScrollPane);
- }
-
- //---------------------------------------------------------------------------------------//
-
- public boolean yesOrNo(String question) {
- return JOptionPane.showConfirmDialog(this, question, "Yes or No", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION;
- }
-
- public void print(String message) {
- if (toscreen == true) {
- log.append(message);
- System.out.print(message);
- }
- if (tofile == true) {
- logfile.append(message);
- }
- }
-
- public void println(String message) {
- print(message + "\n");
- }
+ }
+
+ //---------------------------------------------------------------------------------------//
+
+ public boolean yesOrNo(String question) {
+ return JOptionPane.showConfirmDialog(this, question, "Yes or No", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION;
+ }
+
+ public void print(String message) {
+ if (toscreen == true) {
+ log.append(message);
+ System.out.print(message);
+ }
+ if (tofile == true) {
+ logfile.append(message);
+ }
+ }
+
+ public void println(String message) {
+ print(message + "\n");
+ }
- public void println(Set<String> hash) {
- if (toscreen == true) {
- log.append(hash + "\n");
- System.out.println(hash);
- }
- if (tofile == true) {
- logfile.append(hash + "\n");
- }
- }
+ public void println(Set<String> hash) {
+ if (toscreen == true) {
+ log.append(hash + "\n");
+ System.out.println(hash);
+ }
+ if (tofile == true) {
+ logfile.append(hash + "\n");
+ }
+ }
- public String choose(String message, Object[] choicelist) {
- return (String)JOptionPane.showInputDialog(this, message,"Choose",JOptionPane.PLAIN_MESSAGE,null,choicelist,choicelist[0]);
- }
-
- public String getInput(String message) {
- return (String)JOptionPane.showInputDialog(message);
- }
+ public String choose(String message, Object[] choicelist) {
+ return (String)JOptionPane.showInputDialog(this, message,"Choose",JOptionPane.PLAIN_MESSAGE,null,choicelist,choicelist[0]);
+ }
+
+ public String getInput(String message) {
+ return (String)JOptionPane.showInputDialog(message);
+ }
- //---------------------------------------------------------------------------------------//
+ //---------------------------------------------------------------------------------------//
- public String getFilepath(String title, int mode) {
- fc.setDialogTitle(title);
- fc.setFileSelectionMode(mode);
- if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
- log.append(fc.getSelectedFile().getAbsolutePath() + "\n");
- return fc.getSelectedFile().getAbsolutePath();
- }
- return null;
- }
+ public String getFilepath(String title, int mode) {
+ fc.setDialogTitle(title);
+ fc.setFileSelectionMode(mode);
+ if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
+ log.append(fc.getSelectedFile().getAbsolutePath() + "\n");
+ return fc.getSelectedFile().getAbsolutePath();
+ }
+ return null;
+ }
- //---------------------------------------------------------------------------------------//
+ //---------------------------------------------------------------------------------------//
public void actionPerformed(ActionEvent e) {
if ( e.getSource() == moduleButton ) {
- startpath = getFilepath("Please choose a starting path", JFileChooser.DIRECTORIES_ONLY);
- moduletext.setText(startpath);
+ startpath = getFilepath("Please choose a starting path", JFileChooser.DIRECTORIES_ONLY);
+ moduletext.setText(startpath);
}
if ( e.getSource() == goButton ) {
- try {
- logfile = new PrintWriter(new BufferedWriter(new FileWriter(startpath.replaceAll(Common.strseparate, "$1") + File.separator + "migration.log")));
- MigrationTool.startMigrateAll(startpath);
- logfile.flush();
- logfile.close();
- } catch (Exception en) {
- println(en.getMessage());
- }
+ try {
+ logfile = new PrintWriter(new BufferedWriter(new FileWriter(startpath.replaceAll(Common.strseparate, "$1") + File.separator + "migration.log")));
+ MigrationTool.startMigrateAll(startpath);
+ logfile.flush();
+ logfile.close();
+ } catch (Exception en) {
+ println(en.getMessage());
+ }
}
if ( e.getSource() == msaEditorButton) {
- try {
- MsaTreeEditor.init();
- } catch (Exception en) {
- println(en.getMessage());
- }
+ try {
+ MsaTreeEditor.init();
+ } catch (Exception en) {
+ println(en.getMessage());
+ }
}
if ( e.getSource() == criticButton) {
- try {
- Critic.fireAt(startpath);
- } catch (Exception en) {
- println(en.getMessage());
- }
+ try {
+ Critic.fireAt(startpath);
+ } catch (Exception en) {
+ println(en.getMessage());
+ }
}
if ( e.getSource() == specifyCommentButton) {
- try { // input examine is not imposed but should be added
- MigrationTool.MIGRATIONCOMMENT = getInput("Please type in wanted comment style used by the tool\nbe sure to start with '//', or you won't enjoy the result");
- //MsaWriter.parse("C:\\tianocore\\edk2\\MdePkg\\Library\\BaseLib\\BaseLib.msa");
- } catch (Exception en) {
- println(en.getMessage());
- }
+ try { // input examine is not imposed but should be added
+ MigrationTool.MIGRATIONCOMMENT = getInput("Please type in wanted comment style used by the tool\nbe sure to start with '//', or you won't enjoy the result");
+ //MsaWriter.parse("C:\\tianocore\\edk2\\MdePkg\\Library\\BaseLib\\BaseLib.msa");
+ } catch (Exception en) {
+ println(en.getMessage());
+ }
}
}
public void itemStateChanged(ItemEvent e) {
- if (e.getSource() == filebox) {
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- System.out.println("filebox DESELECTED");
- } else if (e.getStateChange() == ItemEvent.SELECTED) {
- System.out.println("filebox SELECTED");
- }
- } else if (e.getSource() == screenbox) {
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- System.out.println("screenbox DESELECTED");
- } else if (e.getStateChange() == ItemEvent.SELECTED) {
- System.out.println("screenbox SELECTED");
- }
- } else if (e.getSource() == mibox) {
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- MigrationTool.printModuleInfo = false;
- } else if (e.getStateChange() == ItemEvent.SELECTED) {
- MigrationTool.printModuleInfo = true;
- }
- } else if (e.getSource() == criticbox) {
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- MigrationTool.doCritic = false;
- } else if (e.getStateChange() == ItemEvent.SELECTED) {
- MigrationTool.doCritic = true;
- }
- } else if (e.getSource() == defaultpathbox) {
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- MigrationTool.defaultoutput = false;
- } else if (e.getStateChange() == ItemEvent.SELECTED) {
- MigrationTool.defaultoutput = true;
- }
- }
+ if (e.getSource() == filebox) {
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ System.out.println("filebox DESELECTED");
+ } else if (e.getStateChange() == ItemEvent.SELECTED) {
+ System.out.println("filebox SELECTED");
+ }
+ } else if (e.getSource() == screenbox) {
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ System.out.println("screenbox DESELECTED");
+ } else if (e.getStateChange() == ItemEvent.SELECTED) {
+ System.out.println("screenbox SELECTED");
+ }
+ } else if (e.getSource() == mibox) {
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ MigrationTool.printModuleInfo = false;
+ } else if (e.getStateChange() == ItemEvent.SELECTED) {
+ MigrationTool.printModuleInfo = true;
+ }
+ } else if (e.getSource() == criticbox) {
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ MigrationTool.doCritic = false;
+ } else if (e.getStateChange() == ItemEvent.SELECTED) {
+ MigrationTool.doCritic = true;
+ }
+ } else if (e.getSource() == defaultpathbox) {
+ if (e.getStateChange() == ItemEvent.DESELECTED) {
+ MigrationTool.defaultoutput = false;
+ } else if (e.getStateChange() == ItemEvent.SELECTED) {
+ MigrationTool.defaultoutput = true;
+ }
+ }
}
//---------------------------------------------------------------------------------------//
private static final FirstPanel init() {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
- //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
- //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
- //UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
- //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
- } catch (Exception e) {
- System.out.println(e.getMessage());
- }
-
- JFrame frame = new JFrame("MigrationTools");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
+ //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
+ //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
+ //UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
+ //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+
+ JFrame frame = new JFrame("MigrationTools");
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FirstPanel fp = new FirstPanel();
- //fp.setLayout(new GridBagLayout());
- //fp.setLayout(new BoxLayout(fp, BoxLayout.Y_AXIS));
- fp.setOpaque(true);
+ //fp.setLayout(new GridBagLayout());
+ //fp.setLayout(new BoxLayout(fp, BoxLayout.Y_AXIS));
+ fp.setOpaque(true);
frame.setContentPane(fp);
- frame.pack();
- frame.setVisible(true);
-
- return fp;
+ frame.pack();
+ frame.setVisible(true);
+
+ return fp;
}
public static final FirstPanel getInstance() {
- return INSTANCE;
+ return INSTANCE;
}
}
\ No newline at end of file diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Func.java b/Tools/Source/MigrationTools/org/tianocore/migration/Func.java index c311f10..f00eac4 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Func.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Func.java @@ -15,50 +15,50 @@ package org.tianocore.migration; import java.util.regex.*;
public class Func {
- Func(String r8func,String r8lib,String r9func,String r9lib) {
- r8funcname = r8func;
- r8libname = r8lib;
- r9funcname = r9func;
- r9libname = r9lib;
- }
- Func(String[] linecontext) {
- r8funcname = linecontext[1];
- r8libname = linecontext[0];
- r9funcname = linecontext[2];
- r9libname = linecontext[3];
- }
- public String r8funcname;
- public String r8libname;
- public String r9funcname;
- public String r9libname;
+ Func(String r8func,String r8lib,String r9func,String r9lib) {
+ r8funcname = r8func;
+ r8libname = r8lib;
+ r9funcname = r9func;
+ r9libname = r9lib;
+ }
+ Func(String[] linecontext) {
+ r8funcname = linecontext[1];
+ r8libname = linecontext[0];
+ r9funcname = linecontext[2];
+ r9libname = linecontext[3];
+ }
+ public String r8funcname;
+ public String r8libname;
+ public String r9funcname;
+ public String r9libname;
- public static Pattern ptnbrace = Pattern.compile("\\{[^\\{\\}]*\\}",Pattern.MULTILINE);
- //public static Pattern ptnfuncc = Pattern.compile("([a-zA-Z_]\\w*)\\s*\\([^\\)\\(]*\\)",Pattern.MULTILINE);
- public static Pattern ptnfuncc = Pattern.compile("([a-zA-Z_]\\w*)\\s*\\(",Pattern.MULTILINE);
- public static Pattern ptnfuncd = Pattern.compile("([a-zA-Z_]\\w*)\\s*\\([^\\)\\(]*\\)\\s*@",Pattern.MULTILINE);
- public static Pattern ptnlowcase = Pattern.compile("[a-z]"); // must be removed
-
- private static String reservedwords = "if for pack while switch return sizeof";
-
- public static String register(Matcher mtr, ModuleInfo mi, Database db) {
- String temp = null;
+ public static Pattern ptnbrace = Pattern.compile("\\{[^\\{\\}]*\\}",Pattern.MULTILINE);
+ //public static Pattern ptnfuncc = Pattern.compile("([a-zA-Z_]\\w*)\\s*\\([^\\)\\(]*\\)",Pattern.MULTILINE);
+ public static Pattern ptnfuncc = Pattern.compile("([a-zA-Z_]\\w*)\\s*\\(",Pattern.MULTILINE);
+ public static Pattern ptnfuncd = Pattern.compile("([a-zA-Z_]\\w*)\\s*\\([^\\)\\(]*\\)\\s*@",Pattern.MULTILINE);
+ public static Pattern ptnlowcase = Pattern.compile("[a-z]"); // must be removed
+
+ private static String reservedwords = "if for pack while switch return sizeof";
+
+ public static String register(Matcher mtr, ModuleInfo mi, Database db) {
+ String temp = null;
- temp = mtr.group(1); // both changed and not changed funcc are registered , for finding all the non-local function calls
- Matcher mtrlowcase = ptnlowcase.matcher(temp); // must be removed , so the two funcs can be merged
- if (!reservedwords.contains(temp) && mtrlowcase.find()) {
- mi.hashfuncc.add(temp);
- }
- return temp;
- }
- /*
- public static String registerFuncD(Matcher mtr, ModuleInfo mi, Database db) {
- String temp = null;
+ temp = mtr.group(1); // both changed and not changed funcc are registered , for finding all the non-local function calls
+ Matcher mtrlowcase = ptnlowcase.matcher(temp); // must be removed , so the two funcs can be merged
+ if (!reservedwords.contains(temp) && mtrlowcase.find()) {
+ mi.hashfuncc.add(temp);
+ }
+ return temp;
+ }
+ /*
+ public static String registerFuncD(Matcher mtr, ModuleInfo mi, Database db) {
+ String temp = null;
- temp = mtr.group(1); // both changed and not changed funcd are registered , for finding all the non-local function calls
- if (!reservedwords.contains(temp)) {
- mi.hashfuncd.add(temp);
- }
- return temp;
- }
- */
+ temp = mtr.group(1); // both changed and not changed funcd are registered , for finding all the non-local function calls
+ if (!reservedwords.contains(temp)) {
+ mi.hashfuncd.add(temp);
+ }
+ return temp;
+ }
+ */
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Guid.java b/Tools/Source/MigrationTools/org/tianocore/migration/Guid.java index ed6a7a7..8152e7b 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Guid.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Guid.java @@ -15,47 +15,47 @@ package org.tianocore.migration; import java.util.regex.*;
public class Guid {
- Guid (String r8, String t, String n, String r9, String gv, String p) {
- r8name = r8;
- type = t;
- name = n;
- r9name = r9;
- guidvalue = gv;
- pack = p;
- }
- Guid (String[] linecontext, String t) {
- r8name = linecontext[1];
- type = t;
- name = linecontext[0];
- r9name = linecontext[2];
- guidvalue = linecontext[3];
- pack = linecontext[4];
- }
- public String r8name;
- public String type;
- public String name;
- public String r9name;
- public String guidvalue;
- public String pack;
+ Guid (String r8, String t, String n, String r9, String gv, String p) {
+ r8name = r8;
+ type = t;
+ name = n;
+ r9name = r9;
+ guidvalue = gv;
+ pack = p;
+ }
+ Guid (String[] linecontext, String t) {
+ r8name = linecontext[1];
+ type = t;
+ name = linecontext[0];
+ r9name = linecontext[2];
+ guidvalue = linecontext[3];
+ pack = linecontext[4];
+ }
+ public String r8name;
+ public String type;
+ public String name;
+ public String r9name;
+ public String guidvalue;
+ public String pack;
- public static Pattern ptnguid = Pattern.compile("g\\w*Guid");
+ public static Pattern ptnguid = Pattern.compile("g\\w*Guid");
- public static String register(Matcher mtr, ModuleInfo mi, Database db) {
- String type = null;
- String temp = null;
-
- temp = mtr.group();
- if (MigrationTool.db.hasGuid(temp)) { // only changed guids registered, because both changed and not changed guids are included in database
- type = MigrationTool.db.getGuidType(temp);
- if (type.matches("Protocol")) {
- mi.protocol.add(temp);
- } else if (type.matches("Ppi")) {
- mi.ppi.add(temp);
- } else if (type.matches("Guid")) {
- mi.guid.add(temp);
- }
- return temp;
- }
- return null;
- }
+ public static String register(Matcher mtr, ModuleInfo mi, Database db) {
+ String type = null;
+ String temp = null;
+
+ temp = mtr.group();
+ if (MigrationTool.db.hasGuid(temp)) { // only changed guids registered, because both changed and not changed guids are included in database
+ type = MigrationTool.db.getGuidType(temp);
+ if (type.matches("Protocol")) {
+ mi.protocol.add(temp);
+ } else if (type.matches("Ppi")) {
+ mi.ppi.add(temp);
+ } else if (type.matches("Guid")) {
+ mi.guid.add(temp);
+ }
+ return temp;
+ }
+ return null;
+ }
}
\ No newline at end of file diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Macro.java b/Tools/Source/MigrationTools/org/tianocore/migration/Macro.java index 47c507b..b58e590 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Macro.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Macro.java @@ -15,32 +15,32 @@ package org.tianocore.migration; import java.util.regex.*;
public class Macro {
- Macro(String r8, String r9) {
- r8name = r8;
- r9name = r9;
- }
- Macro(String[] linecontext) {
- r8name = linecontext[0];
- r9name = linecontext[1];
- }
-
- public String r8name;
- public String r9name;
+ Macro(String r8, String r9) {
+ r8name = r8;
+ r9name = r9;
+ }
+ Macro(String[] linecontext) {
+ r8name = linecontext[0];
+ r9name = linecontext[1];
+ }
+
+ public String r8name;
+ public String r9name;
- public static Pattern ptntmacro = Pattern.compile("\\b[A-Z_]+\\s*?\\(?\\b",Pattern.MULTILINE);
+ public static Pattern ptntmacro = Pattern.compile("\\b[A-Z_]+\\s*?\\(?\\b",Pattern.MULTILINE);
- private static String unmacro = "VOID UINTN BOOLEAN ASSERT OPTIONAL STATIC NULL TRUE IN OUT FALSE";
+ private static String unmacro = "VOID UINTN BOOLEAN ASSERT OPTIONAL STATIC NULL TRUE IN OUT FALSE";
- public static String register(Matcher mtr, ModuleInfo mi, Database db) {
- String temp = null;
-
- temp = mtr.group();
- if (MigrationTool.db.hasMacro(temp)) { // only changed macros registered, because the database of macro has only changed ones
- if (!unmacro.contains(temp)) {
- mi.hashnonlocalmacro.add(temp);
- }
- return temp;
- }
- return null;
- }
+ public static String register(Matcher mtr, ModuleInfo mi, Database db) {
+ String temp = null;
+
+ temp = mtr.group();
+ if (MigrationTool.db.hasMacro(temp)) { // only changed macros registered, because the database of macro has only changed ones
+ if (!unmacro.contains(temp)) {
+ mi.hashnonlocalmacro.add(temp);
+ }
+ return temp;
+ }
+ return null;
+ }
}
\ No newline at end of file diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/MigrationTool.java b/Tools/Source/MigrationTools/org/tianocore/migration/MigrationTool.java index a0ce0c2..e159c5e 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/MigrationTool.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/MigrationTool.java @@ -18,91 +18,91 @@ import java.util.*; import javax.swing.JFileChooser;
public class MigrationTool {
- public static UI ui = null;
- public static Database db = null;
-
- public static String MIGRATIONCOMMENT = "//%@//";
-
- public static boolean printModuleInfo = false;
- public static boolean doCritic = false;
- public static boolean defaultoutput = false;
-
- public static final HashMap<ModuleInfo, String> ModuleInfoMap = new HashMap<ModuleInfo, String>();
-
- private static final void mainFlow(ModuleInfo mi) throws Exception {
-
- ModuleReader.ModuleScan(mi);
-
- //MigrationTool.ui.yesOrNo("go on replace?");
- SourceFileReplacer.fireAt(mi); // some adding library actions are taken here,so it must be put before "MsaWriter"
-
- //MigrationTool.ui.yesOrNo("go on show?");
- // show result
- if (MigrationTool.printModuleInfo) {
- MigrationTool.ui.println("\nModule Information : ");
- MigrationTool.ui.println("Entrypoint : " + mi.entrypoint);
- show(mi.protocol, "Protocol : ");
- show(mi.ppi, "Ppi : ");
- show(mi.guid, "Guid : ");
- show(mi.hashfuncc, "call : ");
- show(mi.hashfuncd, "def : ");
- show(mi.hashEFIcall, "EFIcall : ");
- show(mi.hashnonlocalmacro, "macro : ");
- show(mi.hashnonlocalfunc, "nonlocal : ");
- show(mi.hashr8only, "hashr8only : ");
- }
-
- //MigrationTool.ui.yesOrNo("go on msawrite?");
- new MsaWriter(mi).flush();
- //MigrationTool.ui.yesOrNo("go on critic?");
-
- if (MigrationTool.doCritic) {
- Critic.fireAt(ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename);
- }
-
- //MigrationTool.ui.yesOrNo("go on delete?");
- Common.deleteDir(mi.modulepath + File.separator + "temp");
-
- MigrationTool.ui.println("Errors Left : " + MigrationTool.db.error);
- MigrationTool.ui.println("Complete!");
- //MigrationTool.ui.println("Your R9 module was placed here: " + mi.modulepath + File.separator + "result");
- //MigrationTool.ui.println("Your logfile was placed here: " + mi.modulepath);
- }
-
- private static final void show(Set<String> hash, String show) {
- MigrationTool.ui.println(show + hash.size());
- MigrationTool.ui.println(hash);
- }
-
- private static final String assignOutPutPath(String inputpath) {
- if (MigrationTool.defaultoutput) {
- return inputpath.replaceAll(Common.strseparate, "$1");
- } else {
- return MigrationTool.ui.getFilepath("Please choose where to place the output module", JFileChooser.DIRECTORIES_ONLY);
- }
- }
-
- public static final void seekModule(String filepath) throws Exception {
- if (ModuleInfo.isModule(filepath)) {
- ModuleInfoMap.put(new ModuleInfo(filepath), assignOutPutPath(filepath));
- }
- }
-
- public static final void startMigrateAll(String path) throws Exception {
- MigrationTool.ui.println("Project Migration");
- MigrationTool.ui.println("Copyright (c) 2006, Intel Corporation");
- Common.toDoAll(path, MigrationTool.class.getMethod("seekModule", String.class), null, null, Common.DIR);
-
- Iterator<ModuleInfo> miit = ModuleInfoMap.keySet().iterator();
- while (miit.hasNext()) {
- mainFlow(miit.next());
- }
-
- ModuleInfoMap.clear();
- }
-
- public static void main(String[] args) throws Exception {
- ui = FirstPanel.getInstance();
- db = Database.getInstance();
- }
+ public static UI ui = null;
+ public static Database db = null;
+
+ public static String MIGRATIONCOMMENT = "//%@//";
+
+ public static boolean printModuleInfo = false;
+ public static boolean doCritic = false;
+ public static boolean defaultoutput = false;
+
+ public static final HashMap<ModuleInfo, String> ModuleInfoMap = new HashMap<ModuleInfo, String>();
+
+ private static final void mainFlow(ModuleInfo mi) throws Exception {
+
+ ModuleReader.ModuleScan(mi);
+
+ //MigrationTool.ui.yesOrNo("go on replace?");
+ SourceFileReplacer.fireAt(mi); // some adding library actions are taken here,so it must be put before "MsaWriter"
+
+ //MigrationTool.ui.yesOrNo("go on show?");
+ // show result
+ if (MigrationTool.printModuleInfo) {
+ MigrationTool.ui.println("\nModule Information : ");
+ MigrationTool.ui.println("Entrypoint : " + mi.entrypoint);
+ show(mi.protocol, "Protocol : ");
+ show(mi.ppi, "Ppi : ");
+ show(mi.guid, "Guid : ");
+ show(mi.hashfuncc, "call : ");
+ show(mi.hashfuncd, "def : ");
+ show(mi.hashEFIcall, "EFIcall : ");
+ show(mi.hashnonlocalmacro, "macro : ");
+ show(mi.hashnonlocalfunc, "nonlocal : ");
+ show(mi.hashr8only, "hashr8only : ");
+ }
+
+ //MigrationTool.ui.yesOrNo("go on msawrite?");
+ new MsaWriter(mi).flush();
+ //MigrationTool.ui.yesOrNo("go on critic?");
+
+ if (MigrationTool.doCritic) {
+ Critic.fireAt(ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename);
+ }
+
+ //MigrationTool.ui.yesOrNo("go on delete?");
+ Common.deleteDir(mi.modulepath + File.separator + "temp");
+
+ MigrationTool.ui.println("Errors Left : " + MigrationTool.db.error);
+ MigrationTool.ui.println("Complete!");
+ //MigrationTool.ui.println("Your R9 module was placed here: " + mi.modulepath + File.separator + "result");
+ //MigrationTool.ui.println("Your logfile was placed here: " + mi.modulepath);
+ }
+
+ private static final void show(Set<String> hash, String show) {
+ MigrationTool.ui.println(show + hash.size());
+ MigrationTool.ui.println(hash);
+ }
+
+ private static final String assignOutPutPath(String inputpath) {
+ if (MigrationTool.defaultoutput) {
+ return inputpath.replaceAll(Common.strseparate, "$1");
+ } else {
+ return MigrationTool.ui.getFilepath("Please choose where to place the output module", JFileChooser.DIRECTORIES_ONLY);
+ }
+ }
+
+ public static final void seekModule(String filepath) throws Exception {
+ if (ModuleInfo.isModule(filepath)) {
+ ModuleInfoMap.put(new ModuleInfo(filepath), assignOutPutPath(filepath));
+ }
+ }
+
+ public static final void startMigrateAll(String path) throws Exception {
+ MigrationTool.ui.println("Project Migration");
+ MigrationTool.ui.println("Copyright (c) 2006, Intel Corporation");
+ Common.toDoAll(path, MigrationTool.class.getMethod("seekModule", String.class), null, null, Common.DIR);
+
+ Iterator<ModuleInfo> miit = ModuleInfoMap.keySet().iterator();
+ while (miit.hasNext()) {
+ mainFlow(miit.next());
+ }
+
+ ModuleInfoMap.clear();
+ }
+
+ public static void main(String[] args) throws Exception {
+ ui = FirstPanel.getInstance();
+ db = Database.getInstance();
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java b/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java index d53c7b9..19c0dfe 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java @@ -16,67 +16,67 @@ import java.io.*; import java.util.*;
/*
- Class ModuleInfo is built for scanning the source files, it contains all the needed
+ Class ModuleInfo is built for scanning the source files, it contains all the needed
information and all the temporary data.
*/
public final class ModuleInfo {
- ModuleInfo(String modulepath) throws Exception {
- this.modulepath = modulepath;
- }
+ ModuleInfo(String modulepath) throws Exception {
+ this.modulepath = modulepath;
+ }
- public final String modulepath;
-
- public String modulename = null;
- public String guidvalue = null;
- public String moduletype = null;
- public String entrypoint = null;
-
- public final Set<String> localmodulesources = new HashSet<String>(); //contains both .c and .h
- public final Set<String> preprocessedccodes = new HashSet<String>();
- public final Set<String> msaorinf = new HashSet<String>(); //only a little, hash may be too big for this
-
- public final Set<String> hashfuncc = new HashSet<String>();
- public final Set<String> hashfuncd = new HashSet<String>();
- public final Set<String> hashnonlocalfunc = new HashSet<String>();
- public final Set<String> hashnonlocalmacro = new HashSet<String>();
- public final Set<String> hashEFIcall = new HashSet<String>();
- public final Set<String> hashr8only = new HashSet<String>();
-
- public final Set<String> hashrequiredr9libs = new HashSet<String>(); // hashrequiredr9libs is now all added in SourceFileReplacer
- public final Set<String> guid = new HashSet<String>();
- public final Set<String> protocol = new HashSet<String>();
- public final Set<String> ppi = new HashSet<String>();
+ public final String modulepath;
+
+ public String modulename = null;
+ public String guidvalue = null;
+ public String moduletype = null;
+ public String entrypoint = null;
+
+ public final Set<String> localmodulesources = new HashSet<String>(); //contains both .c and .h
+ public final Set<String> preprocessedccodes = new HashSet<String>();
+ public final Set<String> msaorinf = new HashSet<String>(); //only a little, hash may be too big for this
+
+ public final Set<String> hashfuncc = new HashSet<String>();
+ public final Set<String> hashfuncd = new HashSet<String>();
+ public final Set<String> hashnonlocalfunc = new HashSet<String>();
+ public final Set<String> hashnonlocalmacro = new HashSet<String>();
+ public final Set<String> hashEFIcall = new HashSet<String>();
+ public final Set<String> hashr8only = new HashSet<String>();
+
+ public final Set<String> hashrequiredr9libs = new HashSet<String>(); // hashrequiredr9libs is now all added in SourceFileReplacer
+ public final Set<String> guid = new HashSet<String>();
+ public final Set<String> protocol = new HashSet<String>();
+ public final Set<String> ppi = new HashSet<String>();
- public final String getModuleType() {
- if (moduletype.contains("PEI")) {
- return "PEIM";
- } else {
- return "DXE_DRIVER";
- }
- }
-
- public final void enroll(String filepath) throws Exception {
- String temp = null;
- if (filepath.contains(".c") || filepath.contains(".C") || filepath.contains(".h") ||
- filepath.contains(".H") || filepath.contains(".dxs") || filepath.contains(".uni")) {
- localmodulesources.add(filepath.replace(modulepath + File.separator, ""));
- } else if (filepath.contains(".inf") || filepath.contains(".msa")) {
- temp = filepath.replace(modulepath + File.separator, "");
- if (!temp.contains(File.separator)) { // .inf in subdirectory is not regarded
- msaorinf.add(temp);
- }
- }
- }
+ public final String getModuleType() {
+ if (moduletype.contains("PEI")) {
+ return "PEIM";
+ } else {
+ return "DXE_DRIVER";
+ }
+ }
+
+ public final void enroll(String filepath) throws Exception {
+ String temp = null;
+ if (filepath.contains(".c") || filepath.contains(".C") || filepath.contains(".h") ||
+ filepath.contains(".H") || filepath.contains(".dxs") || filepath.contains(".uni")) {
+ localmodulesources.add(filepath.replace(modulepath + File.separator, ""));
+ } else if (filepath.contains(".inf") || filepath.contains(".msa")) {
+ temp = filepath.replace(modulepath + File.separator, "");
+ if (!temp.contains(File.separator)) { // .inf in subdirectory is not regarded
+ msaorinf.add(temp);
+ }
+ }
+ }
- public static final boolean isModule(String path) {
- String[] list = new File(path).list();
- for (int i = 0 ; i < list.length ; i++) {
- if (!new File(list[i]).isDirectory()) {
- if (list[i].contains(".inf") || list[i].contains(".msa")) {
- return true;
- }
- }
- }
- return false;
- }
+ public static final boolean isModule(String path) {
+ String[] list = new File(path).list();
+ for (int i = 0 ; i < list.length ; i++) {
+ if (!new File(list[i]).isDirectory()) {
+ if (list[i].contains(".inf") || list[i].contains(".msa")) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
}
\ No newline at end of file diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/ModuleReader.java b/Tools/Source/MigrationTools/org/tianocore/migration/ModuleReader.java index b5c47c4..e67b0d1 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/ModuleReader.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/ModuleReader.java @@ -19,257 +19,257 @@ import java.util.regex.*; import org.tianocore.*;
public final class ModuleReader {
- private static ModuleInfo mi;
-
- private static final Pattern ptninfequation = Pattern.compile("([^\\s]*)\\s*=\\s*([^\\s]*)");
- private static final Pattern ptnsection = Pattern.compile("\\[([^\\[\\]]*)\\]([^\\[\\]]*)\\n", Pattern.MULTILINE);
- private static final Pattern ptnfilename = Pattern.compile("[^\\s]+");
-
- public static final void ModuleScan(ModuleInfo m) throws Exception {
- mi = m;
+ private static ModuleInfo mi;
+
+ private static final Pattern ptninfequation = Pattern.compile("([^\\s]*)\\s*=\\s*([^\\s]*)");
+ private static final Pattern ptnsection = Pattern.compile("\\[([^\\[\\]]*)\\]([^\\[\\]]*)\\n", Pattern.MULTILINE);
+ private static final Pattern ptnfilename = Pattern.compile("[^\\s]+");
+
+ public static final void ModuleScan(ModuleInfo m) throws Exception {
+ mi = m;
- Common.toDoAll(mi.modulepath, ModuleInfo.class.getMethod("enroll", String.class), mi, null, Common.FILE);
+ Common.toDoAll(mi.modulepath, ModuleInfo.class.getMethod("enroll", String.class), mi, null, Common.FILE);
- String filename = null;
- if (mi.msaorinf.isEmpty()) {
- MigrationTool.ui.println("No INF nor MSA file found!");
- System.exit(0);
- } else {
- if (mi.msaorinf.size() == 1) {
- filename = (String)mi.msaorinf.toArray()[0];
- } else {
- filename = MigrationTool.ui.choose("Found .inf or .msa file for module\n" + mi.modulepath + "\nChoose one Please", mi.msaorinf.toArray());
- }
- }
+ String filename = null;
+ if (mi.msaorinf.isEmpty()) {
+ MigrationTool.ui.println("No INF nor MSA file found!");
+ System.exit(0);
+ } else {
+ if (mi.msaorinf.size() == 1) {
+ filename = (String)mi.msaorinf.toArray()[0];
+ } else {
+ filename = MigrationTool.ui.choose("Found .inf or .msa file for module\n" + mi.modulepath + "\nChoose one Please", mi.msaorinf.toArray());
+ }
+ }
- if (filename.contains(".inf")) {
- readInf(filename);
- } else if (filename.contains(".msa")) {
- readMsa(filename);
- }
+ if (filename.contains(".inf")) {
+ readInf(filename);
+ } else if (filename.contains(".msa")) {
+ readMsa(filename);
+ }
- CommentOutNonLocalHFile();
- parsePreProcessedSourceCode();
+ CommentOutNonLocalHFile();
+ parsePreProcessedSourceCode();
- }
-
- private static final void readMsa(String name) throws Exception {
- ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.parse(new File(mi.modulepath + File.separator + name));
- ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = msadoc.getModuleSurfaceArea();
- MsaHeaderDocument.MsaHeader msaheader = msa.getMsaHeader();
+ }
+
+ private static final void readMsa(String name) throws Exception {
+ ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.parse(new File(mi.modulepath + File.separator + name));
+ ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = msadoc.getModuleSurfaceArea();
+ MsaHeaderDocument.MsaHeader msaheader = msa.getMsaHeader();
- mi.modulename = msaheader.getModuleName();
- mi.guidvalue = msaheader.getGuidValue();
- mi.moduletype = msaheader.getModuleType().toString(); // ???
+ mi.modulename = msaheader.getModuleName();
+ mi.guidvalue = msaheader.getGuidValue();
+ mi.moduletype = msaheader.getModuleType().toString(); // ???
- SourceFilesDocument.SourceFiles sourcefiles = msa.getSourceFiles();
-
- String temp;
- Iterator<FilenameDocument.Filename> li = sourcefiles.getFilenameList().iterator();
- while (li.hasNext()) {
- if (!mi.localmodulesources.contains(temp = li.next().toString())) {
- System.out.println("Source File Missing! : " + temp);
- }
- }
- }
-
- private static final void readInf(String name) throws Exception {
- System.out.println("\nParsing INF file: " + name);
- String wholeline;
- Matcher mtrinfequation;
- Matcher mtrsection;
- Matcher mtrfilename;
+ SourceFilesDocument.SourceFiles sourcefiles = msa.getSourceFiles();
+
+ String temp;
+ Iterator<FilenameDocument.Filename> li = sourcefiles.getFilenameList().iterator();
+ while (li.hasNext()) {
+ if (!mi.localmodulesources.contains(temp = li.next().toString())) {
+ System.out.println("Source File Missing! : " + temp);
+ }
+ }
+ }
+
+ private static final void readInf(String name) throws Exception {
+ System.out.println("\nParsing INF file: " + name);
+ String wholeline;
+ Matcher mtrinfequation;
+ Matcher mtrsection;
+ Matcher mtrfilename;
- wholeline = Common.file2string(mi.modulepath + File.separator + name);
- mtrsection = ptnsection.matcher(wholeline);
- while (mtrsection.find()) {
- if (mtrsection.group(1).matches("defines")) {
- mtrinfequation = ptninfequation.matcher(mtrsection.group(2));
- while (mtrinfequation.find()) {
- if (mtrinfequation.group(1).matches("BASE_NAME")) {
- mi.modulename = mtrinfequation.group(2);
- }
- if (mtrinfequation.group(1).matches("FILE_GUID")) {
- mi.guidvalue = mtrinfequation.group(2);
- }
- if (mtrinfequation.group(1).matches("COMPONENT_TYPE")) {
- mi.moduletype = mtrinfequation.group(2);
- }
- }
- }
- if (mtrsection.group(1).matches("nmake.common")) {
- mtrinfequation = ptninfequation.matcher(mtrsection.group(2));
- while (mtrinfequation.find()) {
- if (mtrinfequation.group(1).matches("IMAGE_ENTRY_POINT")) {
- mi.entrypoint = mtrinfequation.group(2);
- }
- if (mtrinfequation.group(1).matches("DPX_SOURCE")) {
- if (!mi.localmodulesources.contains(mtrinfequation.group(2))) {
- MigrationTool.ui.println("DPX File Missing! : " + mtrinfequation.group(2));
- }
- }
- }
- }
- if (mtrsection.group(1).contains("sources.")) {
- mtrfilename = ptnfilename.matcher(mtrsection.group(2));
- while (mtrfilename.find()) {
- if (!mi.localmodulesources.contains(mtrfilename.group())) {
- MigrationTool.ui.println("Source File Missing! : " + mtrfilename.group());
- }
- }
- }
- }
- }
-
- // add '//' to all non-local include lines
- private static final void CommentOutNonLocalHFile() throws IOException {
- BufferedReader rd;
- String line;
- String curFile;
- PrintWriter outfile;
+ wholeline = Common.file2string(mi.modulepath + File.separator + name);
+ mtrsection = ptnsection.matcher(wholeline);
+ while (mtrsection.find()) {
+ if (mtrsection.group(1).matches("defines")) {
+ mtrinfequation = ptninfequation.matcher(mtrsection.group(2));
+ while (mtrinfequation.find()) {
+ if (mtrinfequation.group(1).matches("BASE_NAME")) {
+ mi.modulename = mtrinfequation.group(2);
+ }
+ if (mtrinfequation.group(1).matches("FILE_GUID")) {
+ mi.guidvalue = mtrinfequation.group(2);
+ }
+ if (mtrinfequation.group(1).matches("COMPONENT_TYPE")) {
+ mi.moduletype = mtrinfequation.group(2);
+ }
+ }
+ }
+ if (mtrsection.group(1).matches("nmake.common")) {
+ mtrinfequation = ptninfequation.matcher(mtrsection.group(2));
+ while (mtrinfequation.find()) {
+ if (mtrinfequation.group(1).matches("IMAGE_ENTRY_POINT")) {
+ mi.entrypoint = mtrinfequation.group(2);
+ }
+ if (mtrinfequation.group(1).matches("DPX_SOURCE")) {
+ if (!mi.localmodulesources.contains(mtrinfequation.group(2))) {
+ MigrationTool.ui.println("DPX File Missing! : " + mtrinfequation.group(2));
+ }
+ }
+ }
+ }
+ if (mtrsection.group(1).contains("sources.")) {
+ mtrfilename = ptnfilename.matcher(mtrsection.group(2));
+ while (mtrfilename.find()) {
+ if (!mi.localmodulesources.contains(mtrfilename.group())) {
+ MigrationTool.ui.println("Source File Missing! : " + mtrfilename.group());
+ }
+ }
+ }
+ }
+ }
+
+ // add '//' to all non-local include lines
+ private static final void CommentOutNonLocalHFile() throws IOException {
+ BufferedReader rd;
+ String line;
+ String curFile;
+ PrintWriter outfile;
- Pattern ptninclude = Pattern.compile("[\"<](.*[.]h)[\">]");
- Matcher mtrinclude;
+ Pattern ptninclude = Pattern.compile("[\"<](.*[.]h)[\">]");
+ Matcher mtrinclude;
- Iterator<String> ii = mi.localmodulesources.iterator();
- while ( ii.hasNext() ) {
- curFile = ii.next();
- rd = new BufferedReader(new FileReader(mi.modulepath + File.separator + curFile));
- Common.ensureDir(mi.modulepath + File.separator + "temp" + File.separator + curFile);
- outfile = new PrintWriter(new BufferedWriter(new FileWriter(mi.modulepath + File.separator + "temp" + File.separator + curFile)));
-
- /*
- if (curFile.contains(".dxs")) {
- if (mi.moduletype.contains("PEI")) {
-
- } else {
-
- }
- }
- */
- while ((line = rd.readLine()) != null) {
- if (line.contains("#include")) {
- mtrinclude = ptninclude.matcher(line);
- if (mtrinclude.find() && mi.localmodulesources.contains(mtrinclude.group(1))) {
- } else {
- line = MigrationTool.MIGRATIONCOMMENT + line;
- }
- }
- outfile.append(line + '\n');
- }
- outfile.flush();
- outfile.close();
-
- }
- }
+ Iterator<String> ii = mi.localmodulesources.iterator();
+ while ( ii.hasNext() ) {
+ curFile = ii.next();
+ rd = new BufferedReader(new FileReader(mi.modulepath + File.separator + curFile));
+ Common.ensureDir(mi.modulepath + File.separator + "temp" + File.separator + curFile);
+ outfile = new PrintWriter(new BufferedWriter(new FileWriter(mi.modulepath + File.separator + "temp" + File.separator + curFile)));
+
+ /*
+ if (curFile.contains(".dxs")) {
+ if (mi.moduletype.contains("PEI")) {
+
+ } else {
+
+ }
+ }
+ */
+ while ((line = rd.readLine()) != null) {
+ if (line.contains("#include")) {
+ mtrinclude = ptninclude.matcher(line);
+ if (mtrinclude.find() && mi.localmodulesources.contains(mtrinclude.group(1))) {
+ } else {
+ line = MigrationTool.MIGRATIONCOMMENT + line;
+ }
+ }
+ outfile.append(line + '\n');
+ }
+ outfile.flush();
+ outfile.close();
+
+ }
+ }
- private static final void parsePreProcessedSourceCode() throws Exception {
- //Cl cl = new Cl(modulepath);
- //cl.execute("Fat.c");
- //cl.generateAll(preprocessedccodes);
- //
- //System.out.println("Note!!!! The CL is not implemented now , pls do it manually!!! RUN :");
- //System.out.println("cl " + modulepath + "\\temp\\*.c" + " -P");
- //String[] list = new File(modulepath + File.separator + "temp").list(); // without CL , add
- BufferedReader rd = null;
- String ifile = null;
- String line = null;
- String temp = null;
-
- Iterator<String> ii = mi.localmodulesources.iterator();
- while (ii.hasNext()) {
- temp = ii.next();
- if (temp.contains(".c")) {
- mi.preprocessedccodes.add(temp);
- }
- }
-
- ii = mi.preprocessedccodes.iterator();
-
- Pattern patefifuncc = Pattern.compile("g?(BS|RT)\\s*->\\s*([a-zA-Z_]\\w*)",Pattern.MULTILINE);
- Pattern patentrypoint = Pattern.compile("EFI_([A-Z]*)_ENTRY_POINT\\s*\\(([^\\(\\)]*)\\)",Pattern.MULTILINE);
- Matcher matguid;
- Matcher matfuncc;
- Matcher matfuncd;
- Matcher matenclosereplace;
- Matcher matefifuncc;
- Matcher matentrypoint;
- Matcher matmacro;
-
- while (ii.hasNext()) {
- StringBuffer wholefile = new StringBuffer();
- ifile = ii.next();
- rd = new BufferedReader(new FileReader(mi.modulepath + File.separator + "temp" + File.separator + ifile));
- while ((line = rd.readLine()) != null) {
- wholefile.append(line + '\n');
- }
- line = wholefile.toString();
-
- // if this is a Pei phase module , add these library class to .msa
- matentrypoint = patentrypoint.matcher(line);
- if (matentrypoint.find()) {
- mi.entrypoint = matentrypoint.group(2);
- if (matentrypoint.group(1).matches("PEIM")) {
- mi.hashrequiredr9libs.add("PeimEntryPoint");
- } else {
- mi.hashrequiredr9libs.add("UefiDriverEntryPoint");
- }
- }
-
- // find guid
- matguid = Guid.ptnguid.matcher(line); // several ways to implement this , which one is faster ? :
- while (matguid.find()) { // 1.currently , find once , then call to identify which is it
- if ((temp = Guid.register(matguid, mi, MigrationTool.db)) != null) { // 2.use 3 different matchers , search 3 times to find each
- //matguid.appendReplacement(result, MigrationTool.db.getR9Guidname(temp)); // search the database for all 3 kinds of guids , high cost
- }
- }
- //matguid.appendTail(result);
- //line = result.toString();
+ private static final void parsePreProcessedSourceCode() throws Exception {
+ //Cl cl = new Cl(modulepath);
+ //cl.execute("Fat.c");
+ //cl.generateAll(preprocessedccodes);
+ //
+ //System.out.println("Note!!!! The CL is not implemented now , pls do it manually!!! RUN :");
+ //System.out.println("cl " + modulepath + "\\temp\\*.c" + " -P");
+ //String[] list = new File(modulepath + File.separator + "temp").list(); // without CL , add
+ BufferedReader rd = null;
+ String ifile = null;
+ String line = null;
+ String temp = null;
+
+ Iterator<String> ii = mi.localmodulesources.iterator();
+ while (ii.hasNext()) {
+ temp = ii.next();
+ if (temp.contains(".c")) {
+ mi.preprocessedccodes.add(temp);
+ }
+ }
+
+ ii = mi.preprocessedccodes.iterator();
+
+ Pattern patefifuncc = Pattern.compile("g?(BS|RT)\\s*->\\s*([a-zA-Z_]\\w*)",Pattern.MULTILINE);
+ Pattern patentrypoint = Pattern.compile("EFI_([A-Z]*)_ENTRY_POINT\\s*\\(([^\\(\\)]*)\\)",Pattern.MULTILINE);
+ Matcher matguid;
+ Matcher matfuncc;
+ Matcher matfuncd;
+ Matcher matenclosereplace;
+ Matcher matefifuncc;
+ Matcher matentrypoint;
+ Matcher matmacro;
+
+ while (ii.hasNext()) {
+ StringBuffer wholefile = new StringBuffer();
+ ifile = ii.next();
+ rd = new BufferedReader(new FileReader(mi.modulepath + File.separator + "temp" + File.separator + ifile));
+ while ((line = rd.readLine()) != null) {
+ wholefile.append(line + '\n');
+ }
+ line = wholefile.toString();
+
+ // if this is a Pei phase module , add these library class to .msa
+ matentrypoint = patentrypoint.matcher(line);
+ if (matentrypoint.find()) {
+ mi.entrypoint = matentrypoint.group(2);
+ if (matentrypoint.group(1).matches("PEIM")) {
+ mi.hashrequiredr9libs.add("PeimEntryPoint");
+ } else {
+ mi.hashrequiredr9libs.add("UefiDriverEntryPoint");
+ }
+ }
+
+ // find guid
+ matguid = Guid.ptnguid.matcher(line); // several ways to implement this , which one is faster ? :
+ while (matguid.find()) { // 1.currently , find once , then call to identify which is it
+ if ((temp = Guid.register(matguid, mi, MigrationTool.db)) != null) { // 2.use 3 different matchers , search 3 times to find each
+ //matguid.appendReplacement(result, MigrationTool.db.getR9Guidname(temp)); // search the database for all 3 kinds of guids , high cost
+ }
+ }
+ //matguid.appendTail(result);
+ //line = result.toString();
- // find EFI call in form of '->' , many 'gUnicodeCollationInterface->' like things are not changed
- // This item is not simply replaced , special operation is required.
- matefifuncc = patefifuncc.matcher(line);
- while (matefifuncc.find()) {
- mi.hashEFIcall.add(matefifuncc.group(2));
- }
+ // find EFI call in form of '->' , many 'gUnicodeCollationInterface->' like things are not changed
+ // This item is not simply replaced , special operation is required.
+ matefifuncc = patefifuncc.matcher(line);
+ while (matefifuncc.find()) {
+ mi.hashEFIcall.add(matefifuncc.group(2));
+ }
- // find function call
- matfuncc = Func.ptnfuncc.matcher(line);
- while (matfuncc.find()) {
- if ((temp = Func.register(matfuncc, mi, MigrationTool.db)) != null) {
- //MigrationTool.ui.println(ifile + " dofunc " + temp);
- //matfuncc.appendReplacement(result, MigrationTool.db.getR9Func(temp));
- }
- }
- //matfuncc.appendTail(result);
- //line = result.toString();
+ // find function call
+ matfuncc = Func.ptnfuncc.matcher(line);
+ while (matfuncc.find()) {
+ if ((temp = Func.register(matfuncc, mi, MigrationTool.db)) != null) {
+ //MigrationTool.ui.println(ifile + " dofunc " + temp);
+ //matfuncc.appendReplacement(result, MigrationTool.db.getR9Func(temp));
+ }
+ }
+ //matfuncc.appendTail(result);
+ //line = result.toString();
- // find macro
- matmacro = Macro.ptntmacro.matcher(line);
- while (matmacro.find()) {
- if ((temp = Macro.register(matmacro, mi, MigrationTool.db)) != null) {
- }
- }
-
- // find function definition
- // replace all {} to @
- while ((matenclosereplace = Func.ptnbrace.matcher(line)).find()) {
- line = matenclosereplace.replaceAll("@");
- }
+ // find macro
+ matmacro = Macro.ptntmacro.matcher(line);
+ while (matmacro.find()) {
+ if ((temp = Macro.register(matmacro, mi, MigrationTool.db)) != null) {
+ }
+ }
+
+ // find function definition
+ // replace all {} to @
+ while ((matenclosereplace = Func.ptnbrace.matcher(line)).find()) {
+ line = matenclosereplace.replaceAll("@");
+ }
- matfuncd = Func.ptnfuncd.matcher(line);
- while (matfuncd.find()) {
- if ((temp = Func.register(matfuncd, mi, MigrationTool.db)) != null) {
- }
- }
- }
-
- // op on hash
- Iterator<String> funcci = mi.hashfuncc.iterator();
- while (funcci.hasNext()) {
- if (!mi.hashfuncd.contains(temp = funcci.next()) && !mi.hashEFIcall.contains(temp)) {
- mi.hashnonlocalfunc.add(temp); // this set contains both changed and not changed items
- }
- }
- }
+ matfuncd = Func.ptnfuncd.matcher(line);
+ while (matfuncd.find()) {
+ if ((temp = Func.register(matfuncd, mi, MigrationTool.db)) != null) {
+ }
+ }
+ }
+
+ // op on hash
+ Iterator<String> funcci = mi.hashfuncc.iterator();
+ while (funcci.hasNext()) {
+ if (!mi.hashfuncd.contains(temp = funcci.next()) && !mi.hashEFIcall.contains(temp)) {
+ mi.hashnonlocalfunc.add(temp); // this set contains both changed and not changed items
+ }
+ }
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java b/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java index 2223d22..29dfd88 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java @@ -8,19 +8,19 @@ import javax.xml.parsers.*; import org.w3c.dom.*;
public class MsaTreeEditor extends JPanel {
- /**
- * Define class Serial Version UID
- */
- private static final long serialVersionUID = 3169905938472150649L;
-
- private
+ /**
+ * Define class Serial Version UID
+ */
+ private static final long serialVersionUID = 3169905938472150649L;
+
+ private
/*
- MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) {
- mi = m;
- ui = u;
- msadoc = md;
-
- //rootNode = msadoc.getDomNode();
+ MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) {
+ mi = m;
+ ui = u;
+ msadoc = md;
+
+ //rootNode = msadoc.getDomNode();
rootNode = new DefaultMutableTreeNode("Root Node");
treeModel = new DefaultTreeModel(rootNode);
@@ -43,9 +43,9 @@ public class MsaTreeEditor extends JPanel { addNode(rootNode, "1st");
addNode(rootNode, "2nd");
- }
+ }
*/
- MsaTreeEditor() throws Exception {
+ MsaTreeEditor() throws Exception {
rootNode = new DefaultMutableTreeNode("Root Node");
treeModel = new DefaultTreeModel(rootNode);
@@ -70,92 +70,92 @@ public class MsaTreeEditor extends JPanel { menuitemdel.addActionListener(actionListener);
menuitemedit.addActionListener(actionListener);
- genDomTree(MigrationTool.ui.getFilepath("Select a msa file", JFileChooser.FILES_AND_DIRECTORIES));
- }
-
- //private ModuleSurfaceAreaDocument msadoc;
-
- private JTree tree;
- private DefaultMutableTreeNode rootNode;
- private DefaultTreeModel treeModel;
- private JMenuItem menuitemadd, menuitemdel, menuitemedit;
-
- private JPopupMenu popupmenu;
- private MouseAdapter mouseadapter = new MouseAdapter() {
- public void mouseReleased(MouseEvent me) {
- if (me.getClickCount() == 1 && SwingUtilities.isRightMouseButton(me)) {
- tree.setSelectionPath(tree.getPathForLocation(me.getX(), me.getY()));
- popupmenu.show(tree, me.getX(), me.getY());
- }
- }
- };
- private ActionListener actionListener = new ActionListener() {
- public void actionPerformed(ActionEvent ae) {
- if (ae.getSource() == menuitemadd) {
- addNode();
- } else if (ae.getSource() == menuitemdel) {
- delNode();
- } else if (ae.getSource() == menuitemedit) {
- editNode();
- }
- }
- };
-
- private void editNode() {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent());
- Element element = (Element)node.getUserObject();
- System.out.println(element.getTextContent());
- }
-
- private void delNode() {
- treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()));
- }
-
- private void addNode() {
- addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), MigrationTool.ui.getInput("Input Node Name"));
- }
-
- private DefaultMutableTreeNode addNode(DefaultMutableTreeNode parentNode, Object child) {
+ genDomTree(MigrationTool.ui.getFilepath("Select a msa file", JFileChooser.FILES_AND_DIRECTORIES));
+ }
+
+ //private ModuleSurfaceAreaDocument msadoc;
+
+ private JTree tree;
+ private DefaultMutableTreeNode rootNode;
+ private DefaultTreeModel treeModel;
+ private JMenuItem menuitemadd, menuitemdel, menuitemedit;
+
+ private JPopupMenu popupmenu;
+ private MouseAdapter mouseadapter = new MouseAdapter() {
+ public void mouseReleased(MouseEvent me) {
+ if (me.getClickCount() == 1 && SwingUtilities.isRightMouseButton(me)) {
+ tree.setSelectionPath(tree.getPathForLocation(me.getX(), me.getY()));
+ popupmenu.show(tree, me.getX(), me.getY());
+ }
+ }
+ };
+ private ActionListener actionListener = new ActionListener() {
+ public void actionPerformed(ActionEvent ae) {
+ if (ae.getSource() == menuitemadd) {
+ addNode();
+ } else if (ae.getSource() == menuitemdel) {
+ delNode();
+ } else if (ae.getSource() == menuitemedit) {
+ editNode();
+ }
+ }
+ };
+
+ private void editNode() {
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent());
+ Element element = (Element)node.getUserObject();
+ System.out.println(element.getTextContent());
+ }
+
+ private void delNode() {
+ treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()));
+ }
+
+ private void addNode() {
+ addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), MigrationTool.ui.getInput("Input Node Name"));
+ }
+
+ private DefaultMutableTreeNode addNode(DefaultMutableTreeNode parentNode, Object child) {
DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);
treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount());
tree.scrollPathToVisible(new TreePath(childNode.getPath()));
return childNode;
- }
+ }
- private final void handleNode(Node node, DefaultMutableTreeNode parentNode) {
- DefaultMutableTreeNode curNode = null;
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- System.out.println("elem");
- curNode = addNode(parentNode, node);
- } else if (node.getNodeType() == Node.DOCUMENT_NODE){
- System.out.println("doc");
- curNode = addNode(parentNode, "MsaDocum"); // can Docum be with Root Node?
- }
+ private final void handleNode(Node node, DefaultMutableTreeNode parentNode) {
+ DefaultMutableTreeNode curNode = null;
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ System.out.println("elem");
+ curNode = addNode(parentNode, node);
+ } else if (node.getNodeType() == Node.DOCUMENT_NODE){
+ System.out.println("doc");
+ curNode = addNode(parentNode, "MsaDocum"); // can Docum be with Root Node?
+ }
- NodeList nodelist = node.getChildNodes();
- for (int i = 0; i < nodelist.getLength(); i++) {
- handleNode(nodelist.item(i), curNode);
- }
- }
-
- private final void genDomTree(String filename) throws Exception {
- DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- Document document = builder.parse(filename);
- handleNode(document, rootNode);
- }
-
- public static final void init() throws Exception {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ NodeList nodelist = node.getChildNodes();
+ for (int i = 0; i < nodelist.getLength(); i++) {
+ handleNode(nodelist.item(i), curNode);
+ }
+ }
+
+ private final void genDomTree(String filename) throws Exception {
+ DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document document = builder.parse(filename);
+ handleNode(document, rootNode);
+ }
+
+ public static final void init() throws Exception {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- JFrame frame = new JFrame("MsaTreeEditor");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ JFrame frame = new JFrame("MsaTreeEditor");
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- MsaTreeEditor mte = new MsaTreeEditor();
- mte.setLayout(new GridBagLayout());
- mte.setOpaque(true);
+ MsaTreeEditor mte = new MsaTreeEditor();
+ mte.setLayout(new GridBagLayout());
+ mte.setOpaque(true);
frame.setContentPane(mte);
- frame.pack();
- frame.setVisible(true);
- }
+ frame.pack();
+ frame.setVisible(true);
+ }
}
\ No newline at end of file diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java b/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java index a7b6025..fa9e007 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java @@ -20,163 +20,163 @@ import org.tianocore.SupportedArchitectures.Enum; import org.apache.xmlbeans.*;
public class MsaWriter {
- MsaWriter(ModuleInfo moduleinfo) {
- mi = moduleinfo;
- }
+ MsaWriter(ModuleInfo moduleinfo) {
+ mi = moduleinfo;
+ }
- private ModuleInfo mi;
-
- private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance();
-
- private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = msadoc.addNewModuleSurfaceArea();
- private MsaHeaderDocument.MsaHeader msaheader = msa.addNewMsaHeader();
- private ModuleDefinitionsDocument.ModuleDefinitions md = msa.addNewModuleDefinitions();
- private SourceFilesDocument.SourceFiles sourcefiles = msa.addNewSourceFiles(); //found local .h files are not written
- private GuidsDocument.Guids guids;
- private ProtocolsDocument.Protocols protocols;
- private PPIsDocument.PPIs ppis;
- private PackageDependenciesDocument.PackageDependencies pd = msa.addNewPackageDependencies();
- private LibraryClassDefinitionsDocument.LibraryClassDefinitions libclassdefs = msa.addNewLibraryClassDefinitions();
- private ExternsDocument.Externs externs = msa.addNewExterns();
-
- private String Query (String requirement) throws Exception {
- String answer;
- BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
- System.out.println(requirement);
- while ((answer = rd.readLine()).length() == 0) ;
- return answer;
- }
-
- private void addSourceFiles (String name) { // furthur modification needed
- List<Enum> arch = new ArrayList<Enum>();
- FilenameDocument.Filename filename;
- filename = sourcefiles.addNewFilename();
- filename.setStringValue(name);
-
- if (name.contains("x64" + File.separator)) { // filename ???
- arch.add(SupportedArchitectures.X_64);
- System.out.println("x64" + File.separator);
- filename.setSupArchList(arch);
- } else if (name.contains("Ia32" + File.separator)) { // filename ???
- arch.add(SupportedArchitectures.IA_32);
- System.out.println("Ia32" + File.separator);
- filename.setSupArchList(arch);
- } else if (name.contains("Ipf" + File.separator)) { // filename ???
- arch.add(SupportedArchitectures.IPF);
- System.out.println("Ipf" + File.separator);
- filename.setSupArchList(arch);
- } else if (name.contains("Ebc" + File.separator)) { // filename ???
- arch.add(SupportedArchitectures.EBC);
- System.out.println("Ebc" + File.separator);
- filename.setSupArchList(arch);
- }
- }
-
- private ModuleSurfaceAreaDocument fulfillMsadoc() throws Exception {
- Iterator<String> it;
- String temp;
-
- if (mi.modulename != null) {
- msaheader.setModuleName(mi.modulename);
- } else {
- msaheader.setModuleName(mi.modulename = Query("Module Name Not Found! Please Input ModuleName"));
- }
- if (mi.guidvalue == null) {
- mi.guidvalue = UUID.randomUUID().toString();
- MigrationTool.ui.println ("Guid value can not be retrieved from inf file. Generate " + mi.guidvalue + " at random!");
- }
- msaheader.setGuidValue(mi.guidvalue);
- if (mi.moduletype != null) {
- msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.getModuleType()));
- /*
- if (mi.moduletype.contains("PEI")) {
- msaheader.setModuleType(ModuleTypeDef.Enum.forString("PEIM"));
- } else {
- msaheader.setModuleType(ModuleTypeDef.Enum.forString("DXE_DRIVER"));
- }
- */
- } else {
- msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.moduletype = Query("Guid Value Not Found! Please Input Guid Value")));
- }
+ private ModuleInfo mi;
+
+ private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance();
+
+ private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = msadoc.addNewModuleSurfaceArea();
+ private MsaHeaderDocument.MsaHeader msaheader = msa.addNewMsaHeader();
+ private ModuleDefinitionsDocument.ModuleDefinitions md = msa.addNewModuleDefinitions();
+ private SourceFilesDocument.SourceFiles sourcefiles = msa.addNewSourceFiles(); //found local .h files are not written
+ private GuidsDocument.Guids guids;
+ private ProtocolsDocument.Protocols protocols;
+ private PPIsDocument.PPIs ppis;
+ private PackageDependenciesDocument.PackageDependencies pd = msa.addNewPackageDependencies();
+ private LibraryClassDefinitionsDocument.LibraryClassDefinitions libclassdefs = msa.addNewLibraryClassDefinitions();
+ private ExternsDocument.Externs externs = msa.addNewExterns();
+
+ private String Query (String requirement) throws Exception {
+ String answer;
+ BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
+ System.out.println(requirement);
+ while ((answer = rd.readLine()).length() == 0) ;
+ return answer;
+ }
+
+ private void addSourceFiles (String name) { // furthur modification needed
+ List<Enum> arch = new ArrayList<Enum>();
+ FilenameDocument.Filename filename;
+ filename = sourcefiles.addNewFilename();
+ filename.setStringValue(name);
+
+ if (name.contains("x64" + File.separator)) { // filename ???
+ arch.add(SupportedArchitectures.X_64);
+ System.out.println("x64" + File.separator);
+ filename.setSupArchList(arch);
+ } else if (name.contains("Ia32" + File.separator)) { // filename ???
+ arch.add(SupportedArchitectures.IA_32);
+ System.out.println("Ia32" + File.separator);
+ filename.setSupArchList(arch);
+ } else if (name.contains("Ipf" + File.separator)) { // filename ???
+ arch.add(SupportedArchitectures.IPF);
+ System.out.println("Ipf" + File.separator);
+ filename.setSupArchList(arch);
+ } else if (name.contains("Ebc" + File.separator)) { // filename ???
+ arch.add(SupportedArchitectures.EBC);
+ System.out.println("Ebc" + File.separator);
+ filename.setSupArchList(arch);
+ }
+ }
+
+ private ModuleSurfaceAreaDocument fulfillMsadoc() throws Exception {
+ Iterator<String> it;
+ String temp;
+
+ if (mi.modulename != null) {
+ msaheader.setModuleName(mi.modulename);
+ } else {
+ msaheader.setModuleName(mi.modulename = Query("Module Name Not Found! Please Input ModuleName"));
+ }
+ if (mi.guidvalue == null) {
+ mi.guidvalue = UUID.randomUUID().toString();
+ MigrationTool.ui.println ("Guid value can not be retrieved from inf file. Generate " + mi.guidvalue + " at random!");
+ }
+ msaheader.setGuidValue(mi.guidvalue);
+ if (mi.moduletype != null) {
+ msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.getModuleType()));
+ /*
+ if (mi.moduletype.contains("PEI")) {
+ msaheader.setModuleType(ModuleTypeDef.Enum.forString("PEIM"));
+ } else {
+ msaheader.setModuleType(ModuleTypeDef.Enum.forString("DXE_DRIVER"));
+ }
+ */
+ } else {
+ msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.moduletype = Query("Guid Value Not Found! Please Input Guid Value")));
+ }
- msaheader.setCopyright("Copyright (c) 2006, Intel Corporation");
- msaheader.setVersion("1.0");
- msaheader.setAbstract("Component name for module " + mi.modulename);
- msaheader.setDescription("FIX ME!");
- msaheader.addNewLicense().setStringValue("All rights reserved.\n" +
- " This software and associated documentation (if any) is furnished\n" +
- " under a license and may only be used or copied in accordance\n" +
- " with the terms of the license. Except as permitted by such\n" +
- " license, no part of this software or documentation may be\n" +
- " reproduced, stored in a retrieval system, or transmitted in any\n" +
- " form or by any means without the express written consent of\n" +
- " Intel Corporation.");
- msaheader.setSpecification("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
-
- List<Enum> arch = new ArrayList<Enum>();
- arch.add(SupportedArchitectures.IA_32);
- arch.add(SupportedArchitectures.X_64);
- arch.add(SupportedArchitectures.IPF);
- arch.add(SupportedArchitectures.EBC);
- md.setSupportedArchitectures(arch);
- md.setBinaryModule(false);
- md.setOutputFileBasename(mi.modulename);
-
- pd.addNewPackage().setPackageGuid("5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec");
- externs.addNewSpecification().setStringValue("EFI_SPECIFICATION_VERSION 0x00020000");
- externs.addNewSpecification().setStringValue("EDK_RELEASE_VERSION 0x00020000");
- externs.addNewExtern().setModuleEntryPoint(mi.entrypoint);
-
- it = mi.localmodulesources.iterator();
- while (it.hasNext()) {
- addSourceFiles(it.next());
- }
- if (!mi.protocol.isEmpty()) {
- protocols = msa.addNewProtocols();
- it = mi.protocol.iterator();
- while (it.hasNext()) {
- if ((temp = it.next()) != null) {
- ProtocolsDocument.Protocols.Protocol pr = protocols.addNewProtocol();
- pr.setProtocolCName(temp);
- pr.setUsage(UsageTypes.ALWAYS_CONSUMED);
- }
- }
- }
- if (!mi.ppi.isEmpty()) {
- ppis = msa.addNewPPIs();
- it = mi.ppi.iterator();
- while (it.hasNext()) {
- if ((temp = it.next()) != null) {
- PPIsDocument.PPIs.Ppi pp = ppis.addNewPpi();
- pp.setPpiCName(temp);
- pp.setUsage(UsageTypes.ALWAYS_CONSUMED);
- }
- }
- }
- if (!mi.guid.isEmpty()) {
- guids = msa.addNewGuids();
- it = mi.guid.iterator();
- while (it.hasNext()) {
- if ((temp = it.next()) != null) {
- GuidsDocument.Guids.GuidCNames gcn = guids.addNewGuidCNames();
- gcn.setGuidCName(temp);
- gcn.setUsage(UsageTypes.ALWAYS_CONSUMED);
- }
- }
- }
- it = mi.hashrequiredr9libs.iterator();
- while (it.hasNext()) {
- if ((temp = it.next()) != null && !temp.matches("%")) {
- LibraryClassDocument.LibraryClass lc = libclassdefs.addNewLibraryClass();
- lc.setKeyword(temp);
- lc.setUsage(UsageTypes.ALWAYS_CONSUMED);
- }
- }
-
- return msadoc;
- }
-
- public void flush() throws Exception {
+ msaheader.setCopyright("Copyright (c) 2006, Intel Corporation");
+ msaheader.setVersion("1.0");
+ msaheader.setAbstract("Component name for module " + mi.modulename);
+ msaheader.setDescription("FIX ME!");
+ msaheader.addNewLicense().setStringValue("All rights reserved.\n" +
+ " This software and associated documentation (if any) is furnished\n" +
+ " under a license and may only be used or copied in accordance\n" +
+ " with the terms of the license. Except as permitted by such\n" +
+ " license, no part of this software or documentation may be\n" +
+ " reproduced, stored in a retrieval system, or transmitted in any\n" +
+ " form or by any means without the express written consent of\n" +
+ " Intel Corporation.");
+ msaheader.setSpecification("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
+
+ List<Enum> arch = new ArrayList<Enum>();
+ arch.add(SupportedArchitectures.IA_32);
+ arch.add(SupportedArchitectures.X_64);
+ arch.add(SupportedArchitectures.IPF);
+ arch.add(SupportedArchitectures.EBC);
+ md.setSupportedArchitectures(arch);
+ md.setBinaryModule(false);
+ md.setOutputFileBasename(mi.modulename);
+
+ pd.addNewPackage().setPackageGuid("5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec");
+ externs.addNewSpecification().setStringValue("EFI_SPECIFICATION_VERSION 0x00020000");
+ externs.addNewSpecification().setStringValue("EDK_RELEASE_VERSION 0x00020000");
+ externs.addNewExtern().setModuleEntryPoint(mi.entrypoint);
+
+ it = mi.localmodulesources.iterator();
+ while (it.hasNext()) {
+ addSourceFiles(it.next());
+ }
+ if (!mi.protocol.isEmpty()) {
+ protocols = msa.addNewProtocols();
+ it = mi.protocol.iterator();
+ while (it.hasNext()) {
+ if ((temp = it.next()) != null) {
+ ProtocolsDocument.Protocols.Protocol pr = protocols.addNewProtocol();
+ pr.setProtocolCName(temp);
+ pr.setUsage(UsageTypes.ALWAYS_CONSUMED);
+ }
+ }
+ }
+ if (!mi.ppi.isEmpty()) {
+ ppis = msa.addNewPPIs();
+ it = mi.ppi.iterator();
+ while (it.hasNext()) {
+ if ((temp = it.next()) != null) {
+ PPIsDocument.PPIs.Ppi pp = ppis.addNewPpi();
+ pp.setPpiCName(temp);
+ pp.setUsage(UsageTypes.ALWAYS_CONSUMED);
+ }
+ }
+ }
+ if (!mi.guid.isEmpty()) {
+ guids = msa.addNewGuids();
+ it = mi.guid.iterator();
+ while (it.hasNext()) {
+ if ((temp = it.next()) != null) {
+ GuidsDocument.Guids.GuidCNames gcn = guids.addNewGuidCNames();
+ gcn.setGuidCName(temp);
+ gcn.setUsage(UsageTypes.ALWAYS_CONSUMED);
+ }
+ }
+ }
+ it = mi.hashrequiredr9libs.iterator();
+ while (it.hasNext()) {
+ if ((temp = it.next()) != null && !temp.matches("%")) {
+ LibraryClassDocument.LibraryClass lc = libclassdefs.addNewLibraryClass();
+ lc.setKeyword(temp);
+ lc.setUsage(UsageTypes.ALWAYS_CONSUMED);
+ }
+ }
+
+ return msadoc;
+ }
+
+ public void flush() throws Exception {
XmlOptions options = new XmlOptions();
options.setCharacterEncoding("UTF-8");
@@ -184,14 +184,14 @@ public class MsaWriter { options.setSavePrettyPrintIndent(2);
options.setUseDefaultNamespace();
- BufferedWriter bw = new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + mi.modulename + ".msa"));
- fulfillMsadoc().save(bw, options);
- //MsaTreeEditor.init(mi, ui, msadoc);
- bw.flush();
- bw.close();
- }
+ BufferedWriter bw = new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + mi.modulename + ".msa"));
+ fulfillMsadoc().save(bw, options);
+ //MsaTreeEditor.init(mi, ui, msadoc);
+ bw.flush();
+ bw.close();
+ }
- private static void flush(String path, ModuleSurfaceAreaDocument msadoc) throws Exception {
+ private static void flush(String path, ModuleSurfaceAreaDocument msadoc) throws Exception {
XmlOptions options = new XmlOptions();
options.setCharacterEncoding("UTF-8");
@@ -199,14 +199,14 @@ public class MsaWriter { options.setSavePrettyPrintIndent(2);
options.setUseDefaultNamespace();
- BufferedWriter bw = new BufferedWriter(new FileWriter(path));
- msadoc.save(bw, options);
- bw.flush();
- bw.close();
- }
-
- public static final void parse(String msafile) throws Exception {
- ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.parse(msafile);
- flush("c:\\temp.msa", msadoc);
- }
+ BufferedWriter bw = new BufferedWriter(new FileWriter(path));
+ msadoc.save(bw, options);
+ bw.flush();
+ bw.close();
+ }
+
+ public static final void parse(String msafile) throws Exception {
+ ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.parse(msafile);
+ flush("c:\\temp.msa", msadoc);
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/PathIterator.java b/Tools/Source/MigrationTools/org/tianocore/migration/PathIterator.java index 40a9805..5a286c9 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/PathIterator.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/PathIterator.java @@ -16,35 +16,35 @@ import java.io.File; import java.util.*;
public final class PathIterator implements Common.ForDoAll {
-// this PathIterator is based on HashSet, an thread implementation is required.
- PathIterator(String path, int md) throws Exception {
- startpath = path;
- mode = md;
- Common.toDoAll(startpath, this, mode);
- it = pathlist.iterator();
- }
- private String startpath = null;
- private int mode;
- private HashSet<String> pathlist = new HashSet<String>();
- private Iterator<String> it = null;
+// this PathIterator is based on HashSet, an thread implementation is required.
+ PathIterator(String path, int md) throws Exception {
+ startpath = path;
+ mode = md;
+ Common.toDoAll(startpath, this, mode);
+ it = pathlist.iterator();
+ }
+ private String startpath = null;
+ private int mode;
+ private HashSet<String> pathlist = new HashSet<String>();
+ private Iterator<String> it = null;
- public final void run(String path) throws Exception {
- pathlist.add(path);
- }
+ public final void run(String path) throws Exception {
+ pathlist.add(path);
+ }
- public boolean filter(File dir) {
- return true;
- }
-
- public final String next() {
- return it.next();
- }
+ public boolean filter(File dir) {
+ return true;
+ }
+
+ public final String next() {
+ return it.next();
+ }
- public final boolean hasNext() {
- return it.hasNext();
- }
+ public final boolean hasNext() {
+ return it.hasNext();
+ }
- public final String toString() {
- return pathlist.toString();
- }
+ public final String toString() {
+ return pathlist.toString();
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java b/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java index 25edc44..3238e29 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java @@ -18,374 +18,374 @@ import java.util.regex.Matcher; import java.util.regex.Pattern;
public final class SourceFileReplacer implements Common.ForDoAll {
- private static final SourceFileReplacer SFReplacer = new SourceFileReplacer();
- private ModuleInfo mi;
- private static final Set<Common.Laplace> Laplaces = new HashSet<Common.Laplace>();
+ private static final SourceFileReplacer SFReplacer = new SourceFileReplacer();
+ private ModuleInfo mi;
+ private static final Set<Common.Laplace> Laplaces = new HashSet<Common.Laplace>();
- // these sets are used only for printing log of the changes in current file
- private static final Set<r8tor9> filefunc = new HashSet<r8tor9>();
- private static final Set<r8tor9> filemacro = new HashSet<r8tor9>();
- private static final Set<r8tor9> fileguid = new HashSet<r8tor9>();
- private static final Set<r8tor9> fileppi = new HashSet<r8tor9>();
- private static final Set<r8tor9> fileprotocol = new HashSet<r8tor9>();
- private static final Set<String> filer8only = new HashSet<String>();
-
- private static final String[] specialhoblibfunc = {
- "BuildModuleHob",
- "BuildResourceDescriptorHob",
- "BuildFvHob",
- "BuildCpuHob",
- "BuildStackHob",
- "BuildBspStoreHob",
- "BuildMemoryAllocationHob"
- };
-
- //---------------------------------------inner classes---------------------------------------//
- private static class r8tor9 {
- r8tor9(String r8, String r9) {
- r8thing = r8;
- r9thing = r9;
- }
- public String r8thing;
- public String r9thing;
- }
-
- private class IdleLaplace extends Common.Laplace {
- public String operation(String wholeline) {
- return wholeline;
- }
-
- public boolean recognize(String filename) {
- return filename.contains(".h") || filename.contains(".H") || filename.contains(".uni");
- }
+ // these sets are used only for printing log of the changes in current file
+ private static final Set<r8tor9> filefunc = new HashSet<r8tor9>();
+ private static final Set<r8tor9> filemacro = new HashSet<r8tor9>();
+ private static final Set<r8tor9> fileguid = new HashSet<r8tor9>();
+ private static final Set<r8tor9> fileppi = new HashSet<r8tor9>();
+ private static final Set<r8tor9> fileprotocol = new HashSet<r8tor9>();
+ private static final Set<String> filer8only = new HashSet<String>();
+
+ private static final String[] specialhoblibfunc = {
+ "BuildModuleHob",
+ "BuildResourceDescriptorHob",
+ "BuildFvHob",
+ "BuildCpuHob",
+ "BuildStackHob",
+ "BuildBspStoreHob",
+ "BuildMemoryAllocationHob"
+ };
+
+ //---------------------------------------inner classes---------------------------------------//
+ private static class r8tor9 {
+ r8tor9(String r8, String r9) {
+ r8thing = r8;
+ r9thing = r9;
+ }
+ public String r8thing;
+ public String r9thing;
+ }
+
+ private class IdleLaplace extends Common.Laplace {
+ public String operation(String wholeline) {
+ return wholeline;
+ }
+
+ public boolean recognize(String filename) {
+ return filename.contains(".h") || filename.contains(".H") || filename.contains(".uni");
+ }
- public String namechange(String oldname) {
- if (oldname.contains(".H")) {
- return oldname.replaceFirst(".H", ".h");
- } else {
- return oldname;
- }
- }
- }
- private class DxsLaplace extends Common.Laplace {
- public String operation(String wholeline) {
- if (mi.getModuleType().equals("PEIM")) {
- return addincludefile(wholeline, "\\<PeimDepex.h\\>");
- } else {
- return addincludefile(wholeline, "\\<DxeDepex.h\\>");
- }
- }
-
- public boolean recognize(String filename) {
- return filename.contains(".dxs");
- }
+ public String namechange(String oldname) {
+ if (oldname.contains(".H")) {
+ return oldname.replaceFirst(".H", ".h");
+ } else {
+ return oldname;
+ }
+ }
+ }
+ private class DxsLaplace extends Common.Laplace {
+ public String operation(String wholeline) {
+ if (mi.getModuleType().equals("PEIM")) {
+ return addincludefile(wholeline, "\\<PeimDepex.h\\>");
+ } else {
+ return addincludefile(wholeline, "\\<DxeDepex.h\\>");
+ }
+ }
+
+ public boolean recognize(String filename) {
+ return filename.contains(".dxs");
+ }
- public String namechange(String oldname) {
- return oldname;
- }
- }
-
- private class CLaplace extends Common.Laplace {
- public String operation(String wholeline) {
- boolean addr8 = false;
+ public String namechange(String oldname) {
+ return oldname;
+ }
+ }
+
+ private class CLaplace extends Common.Laplace {
+ public String operation(String wholeline) {
+ boolean addr8 = false;
- Pattern pat = Pattern.compile("g?(BS|RT)(\\s*->\\s*)([a-zA-Z_]\\w*)", Pattern.MULTILINE); // ! only two level () bracket allowed !
- //Pattern ptnpei = Pattern.compile("\\(\\*\\*?PeiServices\\)[.-][>]?\\s*(\\w*[#$]*)(\\s*\\(([^\\(\\)]*(\\([^\\(\\)]*\\))?[^\\(\\)]*)*\\))", Pattern.MULTILINE);
+ Pattern pat = Pattern.compile("g?(BS|RT)(\\s*->\\s*)([a-zA-Z_]\\w*)", Pattern.MULTILINE); // ! only two level () bracket allowed !
+ //Pattern ptnpei = Pattern.compile("\\(\\*\\*?PeiServices\\)[.-][>]?\\s*(\\w*[#$]*)(\\s*\\(([^\\(\\)]*(\\([^\\(\\)]*\\))?[^\\(\\)]*)*\\))", Pattern.MULTILINE);
- // replace BS -> gBS , RT -> gRT
- Matcher mat = pat.matcher(wholeline);
- if (mat.find()) { // add a library here
- MigrationTool.ui.println("Converting all BS->gBS, RT->gRT");
- wholeline = mat.replaceAll("g$1$2$3"); //unknown correctiveness
- }
- mat.reset();
- while (mat.find()) {
- if (mat.group(1).matches("BS")) {
- mi.hashrequiredr9libs.add("UefiBootServicesTableLib");
- }
- if (mat.group(1).matches("RT")) {
- mi.hashrequiredr9libs.add("UefiRuntimeServicesTableLib");
- }
- }
- // remove EFI_DRIVER_ENTRY_POINT
- wholeline = wholeline.replaceAll("(EFI_\\w+_ENTRY_POINT)", MigrationTool.MIGRATIONCOMMENT + " $1");
-
- // start replacing names
- String r8thing;
- String r9thing;
- Iterator<String> it;
- // Converting non-locla function
- it = mi.hashnonlocalfunc.iterator();
- while (it.hasNext()) {
- r8thing = it.next();
- if (r8thing.matches("EfiInitializeDriverLib")) { //s
- mi.hashrequiredr9libs.add("UefiBootServicesTableLib"); //p
- mi.hashrequiredr9libs.add("UefiRuntimeServicesTableLib"); //e
- } else if (r8thing.matches("DxeInitializeDriverLib")) { //c
- mi.hashrequiredr9libs.add("UefiBootServicesTableLib"); //i
- mi.hashrequiredr9libs.add("UefiRuntimeServicesTableLib"); //a
- mi.hashrequiredr9libs.add("DxeServicesTableLib"); //l
- } else { //
- mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing)); // add a library here
- }
+ // replace BS -> gBS , RT -> gRT
+ Matcher mat = pat.matcher(wholeline);
+ if (mat.find()) { // add a library here
+ MigrationTool.ui.println("Converting all BS->gBS, RT->gRT");
+ wholeline = mat.replaceAll("g$1$2$3"); //unknown correctiveness
+ }
+ mat.reset();
+ while (mat.find()) {
+ if (mat.group(1).matches("BS")) {
+ mi.hashrequiredr9libs.add("UefiBootServicesTableLib");
+ }
+ if (mat.group(1).matches("RT")) {
+ mi.hashrequiredr9libs.add("UefiRuntimeServicesTableLib");
+ }
+ }
+ // remove EFI_DRIVER_ENTRY_POINT
+ wholeline = wholeline.replaceAll("(EFI_\\w+_ENTRY_POINT)", MigrationTool.MIGRATIONCOMMENT + " $1");
+
+ // start replacing names
+ String r8thing;
+ String r9thing;
+ Iterator<String> it;
+ // Converting non-locla function
+ it = mi.hashnonlocalfunc.iterator();
+ while (it.hasNext()) {
+ r8thing = it.next();
+ if (r8thing.matches("EfiInitializeDriverLib")) { //s
+ mi.hashrequiredr9libs.add("UefiBootServicesTableLib"); //p
+ mi.hashrequiredr9libs.add("UefiRuntimeServicesTableLib"); //e
+ } else if (r8thing.matches("DxeInitializeDriverLib")) { //c
+ mi.hashrequiredr9libs.add("UefiBootServicesTableLib"); //i
+ mi.hashrequiredr9libs.add("UefiRuntimeServicesTableLib"); //a
+ mi.hashrequiredr9libs.add("DxeServicesTableLib"); //l
+ } else { //
+ mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing)); // add a library here
+ }
- r8tor9 temp;
- if ((r9thing = MigrationTool.db.getR9Func(r8thing)) != null) {
- if (!r8thing.equals(r9thing)) {
- if (wholeline.contains(r8thing)) {
- wholeline = wholeline.replaceAll(r8thing, r9thing);
- filefunc.add(new r8tor9(r8thing, r9thing));
- Iterator<r8tor9> rt = filefunc.iterator();
- while (rt.hasNext()) {
- temp = rt.next();
- if (MigrationTool.db.r8only.contains(temp.r8thing)) {
- filer8only.add(r8thing);
- mi.hashr8only.add(r8thing);
- addr8 = true;
- }
- }
- }
- }
- }
- } //is any of the guids changed?
- if (addr8 == true) {
- wholeline = addincludefile(wholeline, "\"R8Lib.h\"");
- }
-
- // Converting macro
- it = mi.hashnonlocalmacro.iterator();
- while (it.hasNext()) { //macros are all assumed MdePkg currently
- r8thing = it.next();
- //mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing));
- if ((r9thing = MigrationTool.db.getR9Macro(r8thing)) != null) {
- if (wholeline.contains(r8thing)) {
- wholeline = wholeline.replaceAll(r8thing, r9thing);
- filemacro.add(new r8tor9(r8thing, r9thing));
- }
- }
- }
+ r8tor9 temp;
+ if ((r9thing = MigrationTool.db.getR9Func(r8thing)) != null) {
+ if (!r8thing.equals(r9thing)) {
+ if (wholeline.contains(r8thing)) {
+ wholeline = wholeline.replaceAll(r8thing, r9thing);
+ filefunc.add(new r8tor9(r8thing, r9thing));
+ Iterator<r8tor9> rt = filefunc.iterator();
+ while (rt.hasNext()) {
+ temp = rt.next();
+ if (MigrationTool.db.r8only.contains(temp.r8thing)) {
+ filer8only.add(r8thing);
+ mi.hashr8only.add(r8thing);
+ addr8 = true;
+ }
+ }
+ }
+ }
+ }
+ } //is any of the guids changed?
+ if (addr8 == true) {
+ wholeline = addincludefile(wholeline, "\"R8Lib.h\"");
+ }
+
+ // Converting macro
+ it = mi.hashnonlocalmacro.iterator();
+ while (it.hasNext()) { //macros are all assumed MdePkg currently
+ r8thing = it.next();
+ //mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing));
+ if ((r9thing = MigrationTool.db.getR9Macro(r8thing)) != null) {
+ if (wholeline.contains(r8thing)) {
+ wholeline = wholeline.replaceAll(r8thing, r9thing);
+ filemacro.add(new r8tor9(r8thing, r9thing));
+ }
+ }
+ }
- // Converting guid
- replaceGuid(wholeline, mi.guid, "guid", fileguid);
- replaceGuid(wholeline, mi.ppi, "ppi", fileppi);
- replaceGuid(wholeline, mi.protocol, "protocol", fileprotocol);
+ // Converting guid
+ replaceGuid(wholeline, mi.guid, "guid", fileguid);
+ replaceGuid(wholeline, mi.ppi, "ppi", fileppi);
+ replaceGuid(wholeline, mi.protocol, "protocol", fileprotocol);
- // Converting Pei
- // First , find all (**PeiServices)-> or (*PeiServices). with arg "PeiServices" , change name and add #%
- Pattern ptnpei = Pattern.compile("\\(\\*\\*?PeiServices\\)[.-][>]?\\s*(\\w*)(\\s*\\(\\s*PeiServices\\s*,\\s*)", Pattern.MULTILINE);
- if (mi.getModuleType().matches("PEIM")) {
- //if (mi.moduletype.contains("PEIM")) {
- Matcher mtrpei = ptnpei.matcher(wholeline);
- while (mtrpei.find()) { // ! add a library here !
- wholeline = mtrpei.replaceAll("PeiServices$1#%$2");
- mi.hashrequiredr9libs.add("PeiServicesLib");
- }
- mtrpei.reset();
- if (wholeline.contains("PeiServicesCopyMem")) {
- wholeline = wholeline.replaceAll("PeiServicesCopyMem#%", "CopyMem");
- mi.hashrequiredr9libs.add("BaseMemoryLib");
- }
- if (wholeline.contains("PeiServicesSetMem")) {
- wholeline = wholeline.replaceAll("PeiServicesSetMem#%", "SetMem");
- mi.hashrequiredr9libs.add("BaseMemoryLib");
- }
+ // Converting Pei
+ // First , find all (**PeiServices)-> or (*PeiServices). with arg "PeiServices" , change name and add #%
+ Pattern ptnpei = Pattern.compile("\\(\\*\\*?PeiServices\\)[.-][>]?\\s*(\\w*)(\\s*\\(\\s*PeiServices\\s*,\\s*)", Pattern.MULTILINE);
+ if (mi.getModuleType().matches("PEIM")) {
+ //if (mi.moduletype.contains("PEIM")) {
+ Matcher mtrpei = ptnpei.matcher(wholeline);
+ while (mtrpei.find()) { // ! add a library here !
+ wholeline = mtrpei.replaceAll("PeiServices$1#%$2");
+ mi.hashrequiredr9libs.add("PeiServicesLib");
+ }
+ mtrpei.reset();
+ if (wholeline.contains("PeiServicesCopyMem")) {
+ wholeline = wholeline.replaceAll("PeiServicesCopyMem#%", "CopyMem");
+ mi.hashrequiredr9libs.add("BaseMemoryLib");
+ }
+ if (wholeline.contains("PeiServicesSetMem")) {
+ wholeline = wholeline.replaceAll("PeiServicesSetMem#%", "SetMem");
+ mi.hashrequiredr9libs.add("BaseMemoryLib");
+ }
- // Second , find all #% to drop the arg "PeiServices"
- Pattern ptnpeiarg = Pattern.compile("#%+(\\s*\\(+\\s*)PeiServices\\s*,\\s*", Pattern.MULTILINE);
- Matcher mtrpeiarg = ptnpeiarg.matcher(wholeline);
- while (mtrpeiarg.find()) {
- wholeline = mtrpeiarg.replaceAll("$1");
- }
- }
-
- wholeline = hobLibFuncDropStatus(wholeline);
-
- Matcher mtrmac;
- mtrmac = Pattern.compile("EFI_IDIV_ROUND\\((.*), (.*)\\)").matcher(wholeline);
- if (mtrmac.find()) {
- wholeline = mtrmac.replaceAll("\\($1 \\/ $2 \\+ \\(\\(\\(2 \\* \\($1 \\% $2\\)\\) \\< $2\\) \\? 0 \\: 1\\)\\)");
- }
- mtrmac = Pattern.compile("EFI_MIN\\((.*), (.*)\\)").matcher(wholeline);
- if (mtrmac.find()) {
- wholeline = mtrmac.replaceAll("\\(\\($1 \\< $2\\) \\? $1 \\: $2\\)");
- }
- mtrmac = Pattern.compile("EFI_MAX\\((.*), (.*)\\)").matcher(wholeline);
- if (mtrmac.find()) {
- wholeline = mtrmac.replaceAll("\\(\\($1 \\> $2\\) \\? $1 \\: $2\\)");
- }
- mtrmac = Pattern.compile("EFI_UINTN_ALIGNED\\((.*)\\)").matcher(wholeline);
- if (mtrmac.find()) {
- wholeline = mtrmac.replaceAll("\\(\\(\\(UINTN\\) $1\\) \\& \\(sizeof \\(UINTN\\) \\- 1\\)\\)");
- }
- if (wholeline.contains("EFI_UINTN_ALIGN_MASK")) {
- wholeline = wholeline.replaceAll("EFI_UINTN_ALIGN_MASK", "(sizeof (UINTN) - 1)");
- }
+ // Second , find all #% to drop the arg "PeiServices"
+ Pattern ptnpeiarg = Pattern.compile("#%+(\\s*\\(+\\s*)PeiServices\\s*,\\s*", Pattern.MULTILINE);
+ Matcher mtrpeiarg = ptnpeiarg.matcher(wholeline);
+ while (mtrpeiarg.find()) {
+ wholeline = mtrpeiarg.replaceAll("$1");
+ }
+ }
+
+ wholeline = hobLibFuncDropStatus(wholeline);
+
+ Matcher mtrmac;
+ mtrmac = Pattern.compile("EFI_IDIV_ROUND\\((.*), (.*)\\)").matcher(wholeline);
+ if (mtrmac.find()) {
+ wholeline = mtrmac.replaceAll("\\($1 \\/ $2 \\+ \\(\\(\\(2 \\* \\($1 \\% $2\\)\\) \\< $2\\) \\? 0 \\: 1\\)\\)");
+ }
+ mtrmac = Pattern.compile("EFI_MIN\\((.*), (.*)\\)").matcher(wholeline);
+ if (mtrmac.find()) {
+ wholeline = mtrmac.replaceAll("\\(\\($1 \\< $2\\) \\? $1 \\: $2\\)");
+ }
+ mtrmac = Pattern.compile("EFI_MAX\\((.*), (.*)\\)").matcher(wholeline);
+ if (mtrmac.find()) {
+ wholeline = mtrmac.replaceAll("\\(\\($1 \\> $2\\) \\? $1 \\: $2\\)");
+ }
+ mtrmac = Pattern.compile("EFI_UINTN_ALIGNED\\((.*)\\)").matcher(wholeline);
+ if (mtrmac.find()) {
+ wholeline = mtrmac.replaceAll("\\(\\(\\(UINTN\\) $1\\) \\& \\(sizeof \\(UINTN\\) \\- 1\\)\\)");
+ }
+ if (wholeline.contains("EFI_UINTN_ALIGN_MASK")) {
+ wholeline = wholeline.replaceAll("EFI_UINTN_ALIGN_MASK", "(sizeof (UINTN) - 1)");
+ }
- show(filefunc, "function");
- show(filemacro, "macro");
- show(fileguid, "guid");
- show(fileppi, "ppi");
- show(fileprotocol, "protocol");
- if (!filer8only.isEmpty()) {
- MigrationTool.ui.println("Converting r8only : " + filer8only);
- }
+ show(filefunc, "function");
+ show(filemacro, "macro");
+ show(fileguid, "guid");
+ show(fileppi, "ppi");
+ show(fileprotocol, "protocol");
+ if (!filer8only.isEmpty()) {
+ MigrationTool.ui.println("Converting r8only : " + filer8only);
+ }
- filefunc.clear();
- filemacro.clear();
- fileguid.clear();
- fileppi.clear();
- fileprotocol.clear();
- filer8only.clear();
+ filefunc.clear();
+ filemacro.clear();
+ fileguid.clear();
+ fileppi.clear();
+ fileprotocol.clear();
+ filer8only.clear();
- return wholeline;
- }
-
- public boolean recognize(String filename) {
- return filename.contains(".c") || filename.contains(".C");
- }
+ return wholeline;
+ }
+
+ public boolean recognize(String filename) {
+ return filename.contains(".c") || filename.contains(".C");
+ }
- public String namechange(String oldname) {
- if (oldname.contains(".C")) {
- return oldname.replaceFirst(".C", ".c");
- } else {
- return oldname;
- }
- }
- }
- //---------------------------------------inner classes---------------------------------------//
+ public String namechange(String oldname) {
+ if (oldname.contains(".C")) {
+ return oldname.replaceFirst(".C", ".c");
+ } else {
+ return oldname;
+ }
+ }
+ }
+ //---------------------------------------inner classes---------------------------------------//
- //-------------------------------------process functions-------------------------------------//
- private static final String addincludefile(String wholeline, String hfile) {
- return wholeline.replaceFirst("(\\*/\\s)", "$1\n#include " + hfile + "\n");
- }
-
- private static final void show(Set<r8tor9> hash, String sh) {
- Iterator<r8tor9> it = hash.iterator();
- r8tor9 temp;
- if (!hash.isEmpty()) {
- MigrationTool.ui.print("Converting " + sh + " : ");
- while (it.hasNext()) {
- temp = it.next();
- MigrationTool.ui.print("[" + temp.r8thing + "->" + temp.r9thing + "] ");
- }
- MigrationTool.ui.println("");
- }
- }
+ //-------------------------------------process functions-------------------------------------//
+ private static final String addincludefile(String wholeline, String hfile) {
+ return wholeline.replaceFirst("(\\*/\\s)", "$1\n#include " + hfile + "\n");
+ }
+
+ private static final void show(Set<r8tor9> hash, String sh) {
+ Iterator<r8tor9> it = hash.iterator();
+ r8tor9 temp;
+ if (!hash.isEmpty()) {
+ MigrationTool.ui.print("Converting " + sh + " : ");
+ while (it.hasNext()) {
+ temp = it.next();
+ MigrationTool.ui.print("[" + temp.r8thing + "->" + temp.r9thing + "] ");
+ }
+ MigrationTool.ui.println("");
+ }
+ }
- private static final void replaceGuid(String line, Set<String> hash, String kind, Set<r8tor9> filehash) {
- Iterator<String> it;
- String r8thing;
- String r9thing;
- it = hash.iterator();
- while (it.hasNext()) {
- r8thing = it.next();
- if ((r9thing = MigrationTool.db.getR9Guidname(r8thing)) != null) {
- if (!r8thing.equals(r9thing)) {
- if (line.contains(r8thing)) {
- line = line.replaceAll(r8thing, r9thing);
- filehash.add(new r8tor9(r8thing, r9thing));
- }
- }
- }
- }
- }
+ private static final void replaceGuid(String line, Set<String> hash, String kind, Set<r8tor9> filehash) {
+ Iterator<String> it;
+ String r8thing;
+ String r9thing;
+ it = hash.iterator();
+ while (it.hasNext()) {
+ r8thing = it.next();
+ if ((r9thing = MigrationTool.db.getR9Guidname(r8thing)) != null) {
+ if (!r8thing.equals(r9thing)) {
+ if (line.contains(r8thing)) {
+ line = line.replaceAll(r8thing, r9thing);
+ filehash.add(new r8tor9(r8thing, r9thing));
+ }
+ }
+ }
+ }
+ }
- private final String hobLibFuncDropStatus(String wholeline) { // or use regex to find pattern "Status = ..."
- Pattern ptnhobstatus;
- Matcher mtrhobstatus;
- String templine = wholeline;
- for (int i = 0; i < specialhoblibfunc.length; i++) {
- ptnhobstatus = Pattern.compile("(Status\\s*=\\s*)?" + specialhoblibfunc[i] + "(.*?\\)\\s*;)", Pattern.DOTALL);
- mtrhobstatus = ptnhobstatus.matcher(templine);
- if (mtrhobstatus.find()) {
- templine = mtrhobstatus.replaceAll(specialhoblibfunc[i] + mtrhobstatus.group(2) + "\n //Migration comments: R9 Hob-building library functions will assert if build failure.\n Status = EFI_SUCCESS;");
- }
- }
- return templine;
- }
-
- private final void addr8only() throws Exception {
- String paragraph = null;
- String line = Common.file2string(MigrationTool.db.DatabasePath + File.separator + "R8Lib.c");
- PrintWriter outfile1 = new PrintWriter(new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + "R8Lib.c")));
- PrintWriter outfile2 = new PrintWriter(new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + "R8Lib.h")));
- Pattern ptnr8only = Pattern.compile("////#?(\\w*)?(.*?R8_(\\w*).*?)////~", Pattern.DOTALL);
- Matcher mtrr8only = ptnr8only.matcher(line);
- Matcher mtrr8onlyhead;
-
- //add head comment
- Matcher mtrr8onlyheadcomment = Critic.PTN_NEW_HEAD_COMMENT.matcher(line);
- if (mtrr8onlyheadcomment.find()) {
- outfile1.append(mtrr8onlyheadcomment.group() + "\n\n");
- outfile2.append(mtrr8onlyheadcomment.group() + "\n\n");
- }
-
- //add functions body
- while (mtrr8only.find()) {
- if (mi.hashr8only.contains(mtrr8only.group(3))) {
- paragraph = mtrr8only.group(2);
- outfile1.append(paragraph + "\n\n");
- if (mtrr8only.group(1).length() != 0) {
- mi.hashrequiredr9libs.add(mtrr8only.group(1));
- }
- //generate R8lib.h
- while ((mtrr8onlyhead = Func.ptnbrace.matcher(paragraph)).find()) {
- paragraph = mtrr8onlyhead.replaceAll(";");
- }
- outfile2.append(paragraph + "\n\n");
- }
- }
- outfile1.flush();
- outfile1.close();
- outfile2.flush();
- outfile2.close();
-
- mi.localmodulesources.add("R8Lib.h");
- mi.localmodulesources.add("R8Lib.c");
- }
- //-------------------------------------process functions-------------------------------------//
-
- //-----------------------------------ForDoAll-----------------------------------//
- public void run(String filepath) throws Exception {
- String inname = filepath.replace(mi.modulepath + File.separator, "");
- String tempinpath = mi.modulepath + File.separator + "temp" + File.separator;
- String tempoutpath = MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator;
+ private final String hobLibFuncDropStatus(String wholeline) { // or use regex to find pattern "Status = ..."
+ Pattern ptnhobstatus;
+ Matcher mtrhobstatus;
+ String templine = wholeline;
+ for (int i = 0; i < specialhoblibfunc.length; i++) {
+ ptnhobstatus = Pattern.compile("(Status\\s*=\\s*)?" + specialhoblibfunc[i] + "(.*?\\)\\s*;)", Pattern.DOTALL);
+ mtrhobstatus = ptnhobstatus.matcher(templine);
+ if (mtrhobstatus.find()) {
+ templine = mtrhobstatus.replaceAll(specialhoblibfunc[i] + mtrhobstatus.group(2) + "\n //Migration comments: R9 Hob-building library functions will assert if build failure.\n Status = EFI_SUCCESS;");
+ }
+ }
+ return templine;
+ }
+
+ private final void addr8only() throws Exception {
+ String paragraph = null;
+ String line = Common.file2string(MigrationTool.db.DatabasePath + File.separator + "R8Lib.c");
+ PrintWriter outfile1 = new PrintWriter(new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + "R8Lib.c")));
+ PrintWriter outfile2 = new PrintWriter(new BufferedWriter(new FileWriter(MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator + "R8Lib.h")));
+ Pattern ptnr8only = Pattern.compile("////#?(\\w*)?(.*?R8_(\\w*).*?)////~", Pattern.DOTALL);
+ Matcher mtrr8only = ptnr8only.matcher(line);
+ Matcher mtrr8onlyhead;
+
+ //add head comment
+ Matcher mtrr8onlyheadcomment = Critic.PTN_NEW_HEAD_COMMENT.matcher(line);
+ if (mtrr8onlyheadcomment.find()) {
+ outfile1.append(mtrr8onlyheadcomment.group() + "\n\n");
+ outfile2.append(mtrr8onlyheadcomment.group() + "\n\n");
+ }
+
+ //add functions body
+ while (mtrr8only.find()) {
+ if (mi.hashr8only.contains(mtrr8only.group(3))) {
+ paragraph = mtrr8only.group(2);
+ outfile1.append(paragraph + "\n\n");
+ if (mtrr8only.group(1).length() != 0) {
+ mi.hashrequiredr9libs.add(mtrr8only.group(1));
+ }
+ //generate R8lib.h
+ while ((mtrr8onlyhead = Func.ptnbrace.matcher(paragraph)).find()) {
+ paragraph = mtrr8onlyhead.replaceAll(";");
+ }
+ outfile2.append(paragraph + "\n\n");
+ }
+ }
+ outfile1.flush();
+ outfile1.close();
+ outfile2.flush();
+ outfile2.close();
+
+ mi.localmodulesources.add("R8Lib.h");
+ mi.localmodulesources.add("R8Lib.c");
+ }
+ //-------------------------------------process functions-------------------------------------//
+
+ //-----------------------------------ForDoAll-----------------------------------//
+ public void run(String filepath) throws Exception {
+ String inname = filepath.replace(mi.modulepath + File.separator, "");
+ String tempinpath = mi.modulepath + File.separator + "temp" + File.separator;
+ String tempoutpath = MigrationTool.ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename + File.separator;
- Iterator<Common.Laplace> itLaplace = Laplaces.iterator();
- while (itLaplace.hasNext()) {
- Common.Laplace lap = itLaplace.next();
- if (lap.recognize(inname)) {
- MigrationTool.ui.println("\nHandling file: " + inname);
- lap.transform(tempinpath + inname, tempoutpath + lap.namechange(inname));
- }
- }
- }
-
- public boolean filter(File dir) {
- return true;
- }
- //-----------------------------------ForDoAll-----------------------------------//
-
- private final void setModuleInfo(ModuleInfo moduleinfo) {
- mi = moduleinfo;
- }
-
- private final void start() throws Exception {
- Laplaces.add(new DxsLaplace());
- Laplaces.add(new CLaplace());
- Laplaces.add(new IdleLaplace());
-
- Common.toDoAll(mi.localmodulesources, this);
-
- if (!mi.hashr8only.isEmpty()) {
- addr8only();
- }
-
- Laplaces.clear();
- }
-
- public static final void fireAt(ModuleInfo moduleinfo) throws Exception {
- SFReplacer.setModuleInfo(moduleinfo);
- SFReplacer.start();
- }
+ Iterator<Common.Laplace> itLaplace = Laplaces.iterator();
+ while (itLaplace.hasNext()) {
+ Common.Laplace lap = itLaplace.next();
+ if (lap.recognize(inname)) {
+ MigrationTool.ui.println("\nHandling file: " + inname);
+ lap.transform(tempinpath + inname, tempoutpath + lap.namechange(inname));
+ }
+ }
+ }
+
+ public boolean filter(File dir) {
+ return true;
+ }
+ //-----------------------------------ForDoAll-----------------------------------//
+
+ private final void setModuleInfo(ModuleInfo moduleinfo) {
+ mi = moduleinfo;
+ }
+
+ private final void start() throws Exception {
+ Laplaces.add(new DxsLaplace());
+ Laplaces.add(new CLaplace());
+ Laplaces.add(new IdleLaplace());
+
+ Common.toDoAll(mi.localmodulesources, this);
+
+ if (!mi.hashr8only.isEmpty()) {
+ addr8only();
+ }
+
+ Laplaces.clear();
+ }
+
+ public static final void fireAt(ModuleInfo moduleinfo) throws Exception {
+ SFReplacer.setModuleInfo(moduleinfo);
+ SFReplacer.start();
+ }
}
diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/UI.java b/Tools/Source/MigrationTools/org/tianocore/migration/UI.java index 9a77a53..4fda64a 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/UI.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/UI.java @@ -15,18 +15,18 @@ package org.tianocore.migration; import java.util.*;
public interface UI {
-
- public boolean yesOrNo(String question);
-
- public void print(String message);
-
- public void println(String message);
-
- public void println(Set<String> hash);
-
- public String choose(String message, Object[] choicelist);
-
- public String getInput(String message);
-
- public String getFilepath(String title, int mode); // necessary ?
+
+ public boolean yesOrNo(String question);
+
+ public void print(String message);
+
+ public void println(String message);
+
+ public void println(Set<String> hash);
+
+ public String choose(String message, Object[] choicelist);
+
+ public String getInput(String message);
+
+ public String getFilepath(String title, int mode); // necessary ?
}
|