public static List<ByteList> push_glob(String cwd, ByteList globByteList, int flags) { List<ByteList> result = new ArrayList<ByteList>(); if (globByteList.length() > 0) { push_braces(cwd, result, new GlobPattern(globByteList, flags)); } return result; }
private static int push_braces(String cwd, List<ByteList> result, GlobPattern pattern) { pattern.reset(); int lbrace = pattern.indexOf((byte) '{'); // index of left-most brace int rbrace = pattern.findClosingIndexOf(lbrace);// index of right-most brace middleRegionIndex = i + 1; for(i = middleRegionIndex; i < pattern.end && pattern.bytes[i] != '}' && pattern.bytes[i] != ','; i++) { if (pattern.bytes[i] == '{') i = pattern.findClosingIndexOf(i); // skip inner braces buf.append(pattern.bytes, middleRegionIndex, i - middleRegionIndex); buf.append(pattern.bytes, rbrace + 1, pattern.end - (rbrace + 1)); int status = push_braces(cwd, result, new GlobPattern(buf.getUnsafeBytes(), buf.getBegin(), buf.getRealSize(),pattern.flags)); if(status != 0) return status;
private static int push_braces(Ruby runtime, String cwd, List<ByteList> result, GlobPattern pattern) { pattern.reset(); int lbrace = pattern.indexOf((byte) '{'); // index of left-most brace int rbrace = pattern.findClosingIndexOf(lbrace);// index of right-most brace break; if (pattern.bytes[i] == '{') i = pattern.findClosingIndexOf(i); // skip inner braces bytes.append(pattern.bytes, middleRegionIndex, i - middleRegionIndex); bytes.append(pattern.bytes, rbrace + 1, pattern.end - (rbrace + 1)); int status = push_braces(runtime, cwd, result, new GlobPattern(bytes, pattern.flags)); if (status != 0) return status;
private static int push_braces(Ruby runtime, String cwd, List<ByteList> result, GlobPattern pattern) { pattern.reset(); int lbrace = pattern.indexOf((byte) '{'); // index of left-most brace int rbrace = pattern.findClosingIndexOf(lbrace);// index of right-most brace break; if (pattern.bytes[i] == '{') i = pattern.findClosingIndexOf(i); // skip inner braces bytes.append(pattern.bytes, middleRegionIndex, i - middleRegionIndex); bytes.append(pattern.bytes, rbrace + 1, pattern.end - (rbrace + 1)); int status = push_braces(runtime, cwd, result, new GlobPattern(bytes, pattern.flags)); if (status != 0) return status;
private static int push_braces(String cwd, List<ByteList> result, GlobPattern pattern) { pattern.reset(); int lbrace = pattern.indexOf((byte) '{'); // index of left-most brace int rbrace = pattern.findClosingIndexOf(lbrace);// index of right-most brace middleRegionIndex = i + 1; for(i = middleRegionIndex; i < pattern.end && pattern.bytes[i] != '}' && pattern.bytes[i] != ','; i++) { if (pattern.bytes[i] == '{') i = pattern.findClosingIndexOf(i); // skip inner braces buf.append(pattern.bytes, middleRegionIndex, i - middleRegionIndex); buf.append(pattern.bytes, rbrace + 1, pattern.end - (rbrace + 1)); int status = push_braces(cwd, result, new GlobPattern(buf.getUnsafeBytes(), buf.getBegin(), buf.getRealSize(),pattern.flags)); if(status != 0) return status;
public int findClosingIndexOf(int leftTokenIndex) { if (leftTokenIndex == -1 || leftTokenIndex > end) return -1; byte leftToken = bytes[leftTokenIndex]; byte rightToken; switch (leftToken) { case '{': rightToken = '}'; break; case '[': rightToken = ']'; break; default: return -1; } int nest = 1; // leftToken made us start as nest 1 index = leftTokenIndex + 1; while (hasNext()) { byte c = next(); if (c == leftToken) { nest++; } else if (c == rightToken && --nest == 0) { return index(); } } return -1; }
public int findClosingIndexOf(int leftTokenIndex) { if (leftTokenIndex == -1 || leftTokenIndex > end) return -1; byte leftToken = bytes[leftTokenIndex]; byte rightToken; switch (leftToken) { case '{': rightToken = '}'; break; case '[': rightToken = ']'; break; default: return -1; } int nest = 1; // leftToken made us start as nest 1 index = leftTokenIndex + 1; while (hasNext()) { byte c = next(); if (c == leftToken) { nest++; } else if (c == rightToken && --nest == 0) { return index(); } } return -1; }
public int findClosingIndexOf(int leftTokenIndex) { if (leftTokenIndex == -1 || leftTokenIndex > end) return -1; byte leftToken = bytes[leftTokenIndex]; byte rightToken; switch (leftToken) { case '{': rightToken = '}'; break; case '[': rightToken = ']'; break; default: return -1; } int nest = 1; // leftToken made us start as nest 1 index = leftTokenIndex + 1; while (hasNext()) { byte c = next(); if (c == leftToken) { nest++; } else if (c == rightToken && --nest == 0) { return index(); } } return -1; }
public int findClosingIndexOf(int leftTokenIndex) { if (leftTokenIndex == -1 || leftTokenIndex > end) return -1; byte leftToken = bytes[leftTokenIndex]; byte rightToken; switch (leftToken) { case '{': rightToken = '}'; break; case '[': rightToken = ']'; break; default: return -1; } int nest = 1; // leftToken made us start as nest 1 index = leftTokenIndex + 1; while (hasNext()) { byte c = next(); if (c == leftToken) { nest++; } else if (c == rightToken && --nest == 0) { return index(); } } return -1; }
public static List<ByteList> push_glob(String cwd, ByteList globByteList, int flags) { List<ByteList> result = new ArrayList<ByteList>(); if (globByteList.length() > 0) { push_braces(cwd, result, new GlobPattern(globByteList, flags)); } return result; }
public static List<ByteList> push_glob(Ruby runtime, String cwd, ByteList globByteList, int flags) { if (globByteList.length() > 0) { final ArrayList<ByteList> result = new ArrayList<ByteList>(); push_braces(runtime, cwd, result, new GlobPattern(globByteList, flags)); return result; } return Collections.emptyList(); }
public static List<ByteList> push_glob(Ruby runtime, String cwd, ByteList globByteList, int flags) { if (globByteList.length() > 0) { final ArrayList<ByteList> result = new ArrayList<ByteList>(); push_braces(runtime, cwd, result, new GlobPattern(globByteList, flags)); return result; } return Collections.emptyList(); }