All files / transpiler/output/headers/generators IHeaderTypeInput.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                                         
import SymbolTable from "../../../logic/symbols/SymbolTable";
 
/**
 * Input interface for header type generators.
 * Provides read-only access to symbol data needed for generating
 * type definitions in C headers.
 *
 * This interface is a subset of ISymbolInfo, containing only
 * the data needed for generating enums, structs, and bitmaps.
 */
interface IHeaderTypeInput {
  /** Issue #502: Optional SymbolTable for C++ type detection */
  readonly symbolTable?: SymbolTable;
  /** Enum members and values: enumName -> (memberName -> value) */
  readonly enumMembers: ReadonlyMap<string, ReadonlyMap<string, number>>;
 
  /** Struct field types: structName -> (fieldName -> typeName) */
  readonly structFields: ReadonlyMap<string, ReadonlyMap<string, string>>;
 
  /** Array dimensions for struct fields: structName -> (fieldName -> dimensions) */
  readonly structFieldDimensions: ReadonlyMap<
    string,
    ReadonlyMap<string, readonly number[]>
  >;
 
  /** Backing type for each bitmap: bitmapName -> typeName (e.g., "uint8_t") */
  readonly bitmapBackingType: ReadonlyMap<string, string>;
 
  /** Bitmap field info: bitmapName -> (fieldName -> {offset, width}) */
  readonly bitmapFields: ReadonlyMap<
    string,
    ReadonlyMap<string, { readonly offset: number; readonly width: number }>
  >;
}
 
export default IHeaderTypeInput;