import checkers.interning.quals.*;
import java.util.*;
public class FlowInterning {
// @skip-test
// Look at issue 47
// public boolean isSame(Object a, Object b) {
// return ((a == null)
// ? (a == b)
// : (a.equals(b)));
// }
public void testAppendingChar() {
String arg = "";
arg += ' ';
// Interning checker should NOT suggest == here.
if (!arg.equals (""));
}
public String[] parse (String args) {
// Split the args string on whitespace boundaries accounting for quoted
// strings.
args = args.trim();
List<String> arg_list = new ArrayList<String>();
String arg = "";
char active_quote = 0;
for (int ii = 0; ii < args.length(); ii++) {
char ch = args.charAt (ii);
if ((ch == '\'') || (ch == '"')) {
arg+= ch;
ii++;
while ((ii < args.length()) && (args.charAt(ii) != ch))
arg += args.charAt(ii++);
arg += ch;
} else if (Character.isWhitespace (ch)) {
// System.out.printf ("adding argument '%s'%n", arg);
arg_list.add (arg);
arg = "";
while ((ii < args.length()) && Character.isWhitespace(args.charAt(ii)))
ii++;
if (ii < args.length())
ii--;
} else { // must be part of current argument
arg += ch;
}
}
// Interning checker should NOT suggest == here.
if (!arg.equals (""))
arg_list.add (arg);
String[] argsArray = arg_list.toArray (new String[arg_list.size()]);
return argsArray;
}
}