in csharp/EPAM.Deltix.HdTime/Parsers.cs [800:837]
protected override void ParseFormat(String fmt)
{
base.ParseFormat(fmt);
// "Smart" sign insertion
List<IParseable> items = builder.Items;
int n = items.Count;
for (int i = 0; i < n; i++)
{
if (items[i] is StaticField)
continue;
IParseable f;
String s;
// More magic
if (i > 0 && (f = items[i - 1]) is StringField && (s = f.ToString()).EndsWith("0"))
{
int j, m = s.Length;
for (j = m - 1; j >= 0 && s[j] == '0'; --j)
{
}
if (0 == ++j)
{
--i;
}
else
{
items.Insert(i, new StringField(s.Substring(j)));
items[i - 1] = new StringField(s.Substring(0, j));
}
}
items.Insert(i, new SignField());
return;
}
}