1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Sort macros in parser log.

This commit is contained in:
Markus Schorn 2008-03-31 09:01:20 +00:00
parent bb834c4bb7
commit d8328d452b

View file

@ -14,10 +14,15 @@ import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Map.Entry;
import org.eclipse.core.runtime.CoreException;
@ -97,6 +102,12 @@ public class CreateParserLogAction implements IObjectActionDelegate {
}
}
private static final Comparator<String> COMP_INSENSITIVE= new Comparator<String> () {
public int compare(String o1, String o2) {
return o1.toUpperCase().compareTo(o2.toUpperCase());
}
};
private ISelection fSelection;
private IWorkbenchPartSite fSite;
@ -292,7 +303,9 @@ public class CreateParserLogAction implements IObjectActionDelegate {
}
private void output(PrintStream out, String indent, Map<String, String> definedSymbols, HashSet<String> reported) {
for (Entry<String, String> entry : definedSymbols.entrySet()) {
SortedMap<String, String> sorted= new TreeMap<String, String>(COMP_INSENSITIVE);
sorted.putAll(definedSymbols);
for (Entry<String, String> entry : sorted.entrySet()) {
final String macro = entry.getKey() + '=' + entry.getValue();
if (reported.add(macro)) {
out.println(indent + macro);
@ -301,8 +314,12 @@ public class CreateParserLogAction implements IObjectActionDelegate {
}
private void output(PrintStream out, String indent, IASTPreprocessorMacroDefinition[] defs, HashSet<String> reported) {
SortedSet<String> macros= new TreeSet<String>(COMP_INSENSITIVE);
for (IASTPreprocessorMacroDefinition def : defs) {
String macro= def.toString();
macros.add(def.toString());
}
for (String macro : macros) {
if (reported.add(macro)) {
out.println(indent + macro);
}