in java/main/src/main/java/com/epam/deltix/hdtime/FormatString.java [44:87]
static void parse(final String fmt, final Target target) {
int fmtLength = fmt.length();
StringBuilder sb = new StringBuilder(fmtLength);
boolean literalMode = false, wasQuote = false;
for (int i = 0; i < fmtLength;) {
char c = fmt.charAt(i++);
if ('\'' == c) {
literalMode ^= true;
if (false == (wasQuote ^= true))
sb.append('\'');
continue;
}
wasQuote = false;
int maxLen;
if (!literalMode && (maxLen = target.fieldLength(c)) > 0) {
int n = i;
for (; n < fmtLength && fmt.charAt(n) == c; ++n) {}
n -= i;
i += n++;
if (n > maxLen) {
char padding = target.paddingForField(c);
for (int j = 0; j < n - maxLen; j++)
sb.append(padding);
n = maxLen;
}
if (sb.length() > 0) {
target.addString(sb);
sb.setLength(0);
}
target.addField(c, n);
} else {
sb.append(c);
}
}
if (sb.length() > 0)
target.addString(sb);
}