All files / transpiler/logic/symbols/types IVariableSymbol.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                                                             
import ESymbolKind from "../../../../utils/types/ESymbolKind";
import IBaseSymbol from "./IBaseSymbol";
 
/**
 * Symbol representing a variable (global, static, or extern).
 */
interface IVariableSymbol extends IBaseSymbol {
  /** Discriminant for type narrowing */
  kind: ESymbolKind.Variable;
 
  /** C-Next type (e.g., "u32", "Point") */
  type: string;
 
  /** Whether this variable is const */
  isConst: boolean;
 
  /** Issue #468: Whether this variable is atomic (volatile in C) */
  isAtomic: boolean;
 
  /** Whether this variable is an array */
  isArray: boolean;
 
  /** Array dimensions if isArray is true - numbers for resolved dimensions, strings for macros */
  arrayDimensions?: (number | string)[];
 
  /** Initial value expression (as string) */
  initialValue?: string;
}
 
export default IVariableSymbol;