mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.3 KiB
82 lines
2.3 KiB
using System.Collections.Generic; |
|
using CppSharp.AST; |
|
|
|
namespace CppSharp.Generators.Registrable.Lua.Sol |
|
{ |
|
public class LuaSolHeaders : LuaSolSources |
|
{ |
|
public LuaSolHeaders(LuaSolGenerator generator, IEnumerable<TranslationUnit> units) |
|
: base(generator, units) |
|
{ |
|
} |
|
|
|
public override string FileExtension => "h"; |
|
|
|
protected override bool TemplateAllowed { get { return true; } } |
|
|
|
public override void Process() |
|
{ |
|
GenerateFilePreamble(CommentKind.BCPL); |
|
|
|
PushBlock(); |
|
WriteLine("#pragma once"); |
|
PopBlock(NewLineKind.BeforeNextBlock); |
|
|
|
TranslationUnit.Visit(this); |
|
} |
|
|
|
#region TranslationUnit |
|
|
|
public virtual void GenerateTranslationUnitRegistrationFunctionDeclaration(TranslationUnit translationUnit) |
|
{ |
|
NewLine(); |
|
GenerateTranslationUnitRegistrationFunctionSignature(translationUnit); |
|
WriteLine(";"); |
|
NewLine(); |
|
} |
|
|
|
public override void GenerateTranslationUnit(TranslationUnit translationUnit) |
|
{ |
|
GenerateTranslationUnitNamespaceBegin(translationUnit); |
|
GenerateTranslationUnitRegistrationFunctionBody(translationUnit); |
|
GenerateTranslationUnitRegistrationFunctionDeclaration(translationUnit); |
|
GenerateTranslationUnitNamespaceEnd(translationUnit); |
|
} |
|
|
|
public override bool CanGenerateTranslationUnit(TranslationUnit unit) |
|
{ |
|
if (AlreadyVisited(unit)) |
|
{ |
|
return false; |
|
} |
|
return true; |
|
} |
|
|
|
public override bool VisitTranslationUnit(TranslationUnit unit) |
|
{ |
|
if (!CanGenerateTranslationUnit(unit)) |
|
{ |
|
return false; |
|
} |
|
|
|
GenerateTranslationUnit(unit); |
|
|
|
return true; |
|
} |
|
|
|
#endregion |
|
|
|
public virtual void GenerateMain() |
|
{ |
|
VisitNamespace(TranslationUnit); |
|
} |
|
|
|
public virtual void GenerateIncludes() |
|
{ |
|
if (Generator.GeneratorOptions.BaseInclude != null) |
|
{ |
|
WriteLineIndent(Generator.GeneratorOptions.BaseInclude.ToString()); |
|
} |
|
} |
|
} |
|
}
|
|
|