Пример #1
0
        public override TypePrinterResult VisitFieldDecl(Field field)
        {
            var cSharpSourcesDummy = new CSharpSources(Context, new List <TranslationUnit>());
            var safeIdentifier     = cSharpSourcesDummy.SafeIdentifier(field.Name);

            if (safeIdentifier.All(c => c.Equals('_')))
            {
                safeIdentifier = cSharpSourcesDummy.SafeIdentifier(field.Name);
            }

            PushMarshalKind(MarshalKind.NativeField);
            var fieldTypePrinted = field.QualifiedType.Visit(this);

            PopMarshalKind();

            var returnTypePrinter = new TypePrinterResult();

            if (!string.IsNullOrWhiteSpace(fieldTypePrinted.NameSuffix))
            {
                returnTypePrinter.NameSuffix = fieldTypePrinted.NameSuffix;
            }

            returnTypePrinter.Type = $"{fieldTypePrinted.Type} {safeIdentifier}";

            return(returnTypePrinter);
        }
Пример #2
0
 private string SafeIdentifier(string id) =>
 Options.IsCLIGenerator ? id : CSharpSources.SafeIdentifier(id);