INNER CODE UNIT · C#
ContainsScalarPointer
axmolengine/axmol · tools/bindings-generator/src/BindingGenerator.cs:1097
private static bool ContainsScalarPointer(string type) =>
Regex.IsMatch(type,
@"(?<![A-Za-z0-9_])(?:const\s+)?(?:bool|char|short|int|long|long\s+long|float|double|size_t|uint\d*_t|int\d*_t)\s*\*",
RegexOptions.CultureInvariant);
private static bool HasIncompleteNamedType(string type, string context, CursorTree tree)
{
var resolved = ResolveType(type, context, tree);
foreach (Match match in Regex.Matches(resolved, @"(?:[A-Za-z_]\w*::)*[A-Za-z_]\w*"))
{
var qualifiedToken = match.Value;
var shortName = qualifiedToken[(qualifiedToken.LastIndexOf("::", StringComparison.Ordinal) + 2)..];
if (!tree.TypeNames.TryGetValue(shortName, out var candidates))
continue;
if (candidates.Any(candidate =>
string.Equals(candidate, qualifiedToken, StringComparison.Ordinal) &&
!tree.DefinedTypes.Contains(candidate)))
return true;