All files / transpiler/output/headers/types IHeaderSymbol.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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63                                                                                                                             
/**
 * IHeaderSymbol - Normalized symbol interface for header generation.
 *
 * ADR-055 Phase 5: This interface works with both TSymbol and ISymbol,
 * providing a consistent view for header generation regardless of source.
 *
 * Header generation needs a subset of symbol information:
 * - Name and kind for categorization
 * - Type information for declarations
 * - Export status for filtering
 * - Array/const/atomic modifiers for variable declarations
 * - Parameters for function signatures
 */
 
import TSymbolKind from "../../../types/symbol-kinds/TSymbolKind";
import IParameterSymbol from "../../../../utils/types/IParameterSymbol";
 
interface IHeaderSymbol {
  /** Symbol name */
  readonly name: string;
 
  /** Symbol kind */
  readonly kind: TSymbolKind;
 
  /** Type of the symbol (e.g., "void", "u32", "Point") */
  readonly type?: string;
 
  /** Whether this symbol is exported/public */
  readonly isExported: boolean;
 
  /** Whether this variable is const */
  readonly isConst?: boolean;
 
  /** Whether this variable is atomic (volatile in C) */
  readonly isAtomic?: boolean;
 
  /** Whether this is an array */
  readonly isArray?: boolean;
 
  /** Array dimensions (e.g., ["10"] or ["10", "20"]) */
  readonly arrayDimensions?: readonly string[];
 
  /** Function parameters for signature generation */
  readonly parameters?: readonly IParameterSymbol[];
 
  /** Function signature for display */
  readonly signature?: string;
 
  /** Parent namespace or class name */
  readonly parent?: string;
 
  /** Access modifier for register members */
  readonly accessModifier?: string;
 
  /** Source file (for debugging/logging) */
  readonly sourceFile?: string;
 
  /** Source line (for debugging/logging) */
  readonly sourceLine?: number;
}
 
export default IHeaderSymbol;