protected override void ParseFormat()

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;
				}
			}