blob: 176687d5a528d3579bc9fe7a183d2bfc33ef94a3 [file] [log] [blame]
package org.jetbrains.idea.maven.execution.cmd;
/**
* @author Sergey Evdokimov
*/
public class ParametersListLexer {
private final String myText;
private int myTokenStart = -1;
private int index = 0;
public ParametersListLexer(String text) {
myText = text;
}
public int getTokenStart() {
assert myTokenStart >= 0;
return myTokenStart;
}
public int getTokenEnd() {
assert myTokenStart >= 0;
return index;
}
public String getCurrentToken() {
return myText.substring(myTokenStart, index);
}
public boolean nextToken() {
int i = index;
while (i < myText.length() && Character.isWhitespace(myText.charAt(i))) {
i++;
}
if (i == myText.length()) {
return false;
}
myTokenStart = i;
boolean isInQuote = false;
do {
char a = myText.charAt(i);
if (!isInQuote && Character.isWhitespace(a)) {
break;
}
if (a == '\\' && i + 1 < myText.length() && myText.charAt(i + 1) == '"') {
i += 2;
}
else if (a == '"') {
i++;
isInQuote = !isInQuote;
}
else {
i++;
}
} while (i < myText.length());
index = i;
return true;
}
}