}
private ParseUtils.ExtendedParseResult<State> parse(String text) {
JsonArray<Token> tokens = JsonCollections.createArray();
while (text.length() > 0) {
MatchResult result = PARSER.exec(text);
if (result == null) {
throw new IllegalArgumentException("Can't parse: " + text);
}
String value;
TokenType type;
if (result.getGroup(2) != null) {
value = result.getGroup(2);
type = VARIABLE;
} else if (result.getGroup(3) != null) {
value = result.getGroup(3);
type = NULL;
} else if (result.getGroup(4) != null) {
value = result.getGroup(4);
type = WHITESPACE;
} else {
throw new IllegalArgumentException("Can't parse: " + result.getGroup(1));
}
tokens.add(new Token("test", type, value));
text = text.substring(value.length());
}
ParseResult<State> parseResult = new ParseResult<State>(tokens, TestUtils.createMockState());