public static IEnumerable<OzmlMaterial> ParseMaterials(string literal)
{
List<OzmlMaterial> result = new List<OzmlMaterial>();
var start = literal.IndexOf('.');
while (start >= 0)
{
var propStart = literal.IndexOf('{', start);
var propEnd = literal.IndexOf('}', start);
if (propEnd > propStart && propStart > start)
result.Add(ParseMaterial(literal.Substring(start, propEnd - start + 1)));
start = literal.IndexOf('.', propEnd);
}
return result.ToArray();
}