in SharpGen.Platform/CppParser.cs [924:947]
private CppElement ParseElement(XElement xElement)
{
switch (xElement.Name.LocalName)
{
case CastXml.TagEnumeration:
return ParseEnum(xElement);
case CastXml.TagFunction:
// TODO: Find better criteria for exclusion. In CastXML extern="1" only indicates an explicit external storage modifier.
// For now, exclude inline functions instead; may not be sensible since by default all functions have external linkage.
if (xElement.AttributeValue("inline") == null)
return ParseFunction(xElement);
break;
case CastXml.TagClass:
case CastXml.TagStruct:
return xElement.AttributeValue("abstract") != null ? (CppElement)ParseInterface(xElement) : ParseStructOrUnion(xElement);
case CastXml.TagUnion:
return ParseStructOrUnion(xElement);
case CastXml.TagVariable:
if (xElement.AttributeValue("init") != null)
return ParseVariable(xElement);
break;
}
return null;
}