protected override IParsedElement TryParseElement(List <string> lines, int index, out int end) { end = index + 1; var text = lines[index]; var test = NormalizeType.Replace(text, string.Empty); if (IsBlockStart(lines, index, out index)) { end = index; return(null); } if (!FieldRules.IsMatch(test)) { return(null); } var parts = test.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length < 2) { return(null); } var cppType = parts[0]; if (NotTypeChar.IsMatch(cppType)) { return(null); } var name = parts[1].Trim(' ', ';'); if (NotNameChar.IsMatch(name)) { return(null); } var coment = string.Empty; if (parts.Length > 2) { coment = string.Join(" ", parts.Skip(2)).TrimStart(' ', '/', '<'); } var netType = cppType; netType = GetKnownTypeOrDefault(netType); var field = new ParsedField { Type = netType, CppType = cppType, Name = ToTitleCase(name), CppName = name, Comment = coment }; return(field); }
protected IParsedElement TryParseEnum(List <string> lines, int index, out int end) { end = index + 1; var text = lines[index].Trim(); var parts = text.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 0) { return(null); } var name = parts[0]; var coment = string.Empty; if (parts.Length > 1) { coment = string.Join(" ", parts.Skip(2)).TrimStart(' ', '/', '<'); } var field = new ParsedField { Name = ToTitleCase(name), CppName = name, Comment = coment }; return(field); }