private VmtFile(VmtFileReader reader) { var shaderNameRegex = new Regex(@"^\s*(""(?<shader>[a-zA-Z0-9/\\]+)""|(?<shader>[a-zA-Z0-9/\\]+))\s*$", RegexOptions.Compiled); Match match; while (reader.ReadRegex(shaderNameRegex, out match)) { var shader = match.Groups["shader"].Value; var group = new PropertyGroup(reader); _propertyGroups.Add(shader, group); } }
public PropertyGroup(VmtFileReader reader) { reader.AssertToken("{"); while (!reader.ReadToken("}")) { Match match; if (reader.ReadRegex(_sNestedRegex, out match)) { // TODO var nested = new PropertyGroup(reader); continue; } reader.AssertRegex(_sPropertyRegex, out match, "shader property"); var name = match.Groups["name"]; var value = match.Groups["value"]; _properties.Add(name.Value, value.Value); } }