protected override IParsedElement TryParseElement(List <string> lines, int index, out int end) { end = index + 1; var text = lines[index].Trim(); while (text.EndsWith(",")) { text = $"{text} {lines[end++].Trim()}"; } var test = NormalizeType.Replace(text, string.Empty); if (!FuncRegex.IsMatch(test) || VoidFuncRegex.IsMatch(test)) { return(null); } var cppTypeMatch = FuncTypeRegex.Match(test); if (!cppTypeMatch.Success) { return(null); } var nameMatch = FuncNameRegex.Match(test); if (!nameMatch.Success) { return(null); } var paramsMatch = ParamsRegex.Match(test); if (!paramsMatch.Success) { return(null); } var netType = cppTypeMatch.Value; netType = GetKnownTypeOrDefault(netType); var field = new ParsedFunc { Type = netType, CppType = cppTypeMatch.Value, Name = ToTitleCase(nameMatch.Value), CppName = nameMatch.Value, Params = TryParseParams(paramsMatch.Value), CppParams = paramsMatch.Value, //Comment = coment }; return(field); }
protected override PreParsedElement TryParseElement(PreParsedElement preParsedElement, string templateName) { var test = preParsedElement.CppText; if (!FuncRegex.IsMatch(test))// || VoidFuncRegex.IsMatch(test)) { return(null); } var cppTypeMatch = FuncTypeRegex.Match(test); if (!cppTypeMatch.Success) { return(null); } var nameMatch = FuncNameRegex.Match(test); if (!nameMatch.Success) { return(null); } var paramsMatch = ParamsRegex.Match(test); if (!paramsMatch.Success) { return(null); } try { var field = new ParsedFunc(); field.Type = GetKnownTypeOrDefault(cppTypeMatch.Value, templateName); field.Name = CashParser.ToTitleCase(nameMatch.Value); field.CppName = nameMatch.Value; field.Params = TryParseParams(paramsMatch.Value); field.Comment = preParsedElement.Comment; field.MainComment = preParsedElement.MainComment; return(field); } catch (Exception e) { } var error = new ParsedFunc(); error.Comment = "Parsing error: { preParsedElement.CppText}"; return(error); }