/** * DeukPack C++ Generator * Output: `_deuk.h` + `_deuk.cpp` per IDL source (avoids colliding with hand-written `Foo.h`). * Include-only IDL → umbrella `_deuk.h` (forward #includes only). */ import { DeukPackAST, GenerationOptions } from '../../types/DeukPackTypes'; import { CodeGenerator } from '../CodeGenerator'; export declare class CppGenerator extends CodeGenerator { private readonly _tpl; private cppHeaderFileName; private cppSourceFileName; /** IDL namespace `a.b.c` → C++ qualified scope `a::b::c` */ private cppQualifiedNs; private renderCppNamespaceOpen; private renderCppNamespaceClose; generate(ast: DeukPackAST, _options: GenerationOptions): Promise<{ [filename: string]: string; }>; /** Map IDL include string to generated header name (`_deuk.h`). */ private idlIncludeToHeaderName; private idlIncludesToUniqueHeaders; /** * Include-only IDL: forward #includes only. We do not open a C++ namespace here — each generated * header uses its own namespace blocks; wrapping #include in namespace X { } would be ill-formed. */ private generateUmbrellaHeader; private groupBySourceFile; private getBaseNameFromSource; private getCppType; private resolveTypeName; private getCppTypePrimitive; private normPath; /** Match C#: map keys vs enum/struct sourceFile may differ by separators only. */ private lookupFileNamespace; /** * Headers for struct/enum definitions in other IDL stems (e.g. Party uses prologue Hero → #include "cpp_deuk.h"). */ private collectCrossSourceHeaderIncludes; private generateHeader; private getEnumNamespace; private getStructNamespace; private getConstantNamespace; private getTypedefNamespace; private renderEnum; private renderStructDecl; private renderConstantLine; private generateCppFile; private renderStructImpl; private renderReadDirectCases; private getRealType; private toWireType; } //# sourceMappingURL=CppGenerator.d.ts.map