120,8 → 120,14 |
break; |
|
default: |
if(Character.isLetter(c) || c == '_') { |
if(Character.isDigit(c)) { |
startPos = pos; |
pos = findIntegerEnd(path, pos); |
token = path.substring(startPos, pos); |
addToken(tokens, startPos, Token.TOKEN_INDEX, token); |
} |
else if(Character.isLetter(c) || c == '_') { |
startPos = pos; |
pos = findTokenEnd(path, pos); |
token = path.substring(startPos, pos); |
if("and".equals(token)) |
217,6 → 223,23 |
return pos; |
} |
|
private int findIntegerEnd(String path, int pos) |
throws PathParseException |
{ |
int endPos = path.length(); |
char c; |
|
while(true) { |
pos++; |
if(pos >= endPos) break; |
|
c = path.charAt(pos); |
if(!Character.isDigit(c)) break; |
} |
|
return pos; |
} |
|
private void addToken(List tokens, int pos, int type, String value) |
{ |
tokens.add(new Token(type, pos, value)); |