Module ATDGenerated.Clang_ast_t

type access_specifier = [
  1. | `None
  2. | `Public
  3. | `Protected
  4. | `Private
]
type atomic_expr_kind = [
  1. | `AO__c11_atomic_init
  2. | `AO__c11_atomic_load
  3. | `AO__c11_atomic_store
  4. | `AO__c11_atomic_exchange
  5. | `AO__c11_atomic_compare_exchange_strong
  6. | `AO__c11_atomic_compare_exchange_weak
  7. | `AO__c11_atomic_fetch_add
  8. | `AO__c11_atomic_fetch_sub
  9. | `AO__c11_atomic_fetch_and
  10. | `AO__c11_atomic_fetch_or
  11. | `AO__c11_atomic_fetch_xor
  12. | `AO__c11_atomic_fetch_nand
  13. | `AO__c11_atomic_fetch_max
  14. | `AO__c11_atomic_fetch_min
  15. | `AO__atomic_load
  16. | `AO__atomic_load_n
  17. | `AO__atomic_store
  18. | `AO__atomic_store_n
  19. | `AO__atomic_exchange
  20. | `AO__atomic_exchange_n
  21. | `AO__atomic_compare_exchange
  22. | `AO__atomic_compare_exchange_n
  23. | `AO__atomic_fetch_add
  24. | `AO__atomic_fetch_sub
  25. | `AO__atomic_fetch_and
  26. | `AO__atomic_fetch_or
  27. | `AO__atomic_fetch_xor
  28. | `AO__atomic_fetch_nand
  29. | `AO__atomic_add_fetch
  30. | `AO__atomic_sub_fetch
  31. | `AO__atomic_and_fetch
  32. | `AO__atomic_or_fetch
  33. | `AO__atomic_xor_fetch
  34. | `AO__atomic_max_fetch
  35. | `AO__atomic_min_fetch
  36. | `AO__atomic_nand_fetch
  37. | `AO__opencl_atomic_init
  38. | `AO__opencl_atomic_load
  39. | `AO__opencl_atomic_store
  40. | `AO__opencl_atomic_exchange
  41. | `AO__opencl_atomic_compare_exchange_strong
  42. | `AO__opencl_atomic_compare_exchange_weak
  43. | `AO__opencl_atomic_fetch_add
  44. | `AO__opencl_atomic_fetch_sub
  45. | `AO__opencl_atomic_fetch_and
  46. | `AO__opencl_atomic_fetch_or
  47. | `AO__opencl_atomic_fetch_xor
  48. | `AO__opencl_atomic_fetch_min
  49. | `AO__opencl_atomic_fetch_max
  50. | `AO__atomic_fetch_min
  51. | `AO__atomic_fetch_max
  52. | `AO__hip_atomic_load
  53. | `AO__hip_atomic_store
  54. | `AO__hip_atomic_compare_exchange_weak
  55. | `AO__hip_atomic_compare_exchange_strong
  56. | `AO__hip_atomic_exchange
  57. | `AO__hip_atomic_fetch_add
  58. | `AO__hip_atomic_fetch_sub
  59. | `AO__hip_atomic_fetch_and
  60. | `AO__hip_atomic_fetch_or
  61. | `AO__hip_atomic_fetch_xor
  62. | `AO__hip_atomic_fetch_min
  63. | `AO__hip_atomic_fetch_max
]
type atomic_expr_info = {
  1. aei_kind : atomic_expr_kind;
}
type attribute_kind =
  1. | AddressSpaceAttrKind
  2. | AnnotateTypeAttrKind
  3. | ArmMveStrictPolymorphismAttrKind
  4. | ArmStreamingAttrKind
  5. | BTFTypeTagAttrKind
  6. | CmseNSCallAttrKind
  7. | HLSLGroupSharedAddressSpaceAttrKind
  8. | NoDerefAttrKind
  9. | ObjCGCAttrKind
  10. | ObjCInertUnsafeUnretainedAttrKind
  11. | ObjCKindOfAttrKind
  12. | OpenCLConstantAddressSpaceAttrKind
  13. | OpenCLGenericAddressSpaceAttrKind
  14. | OpenCLGlobalAddressSpaceAttrKind
  15. | OpenCLGlobalDeviceAddressSpaceAttrKind
  16. | OpenCLGlobalHostAddressSpaceAttrKind
  17. | OpenCLLocalAddressSpaceAttrKind
  18. | OpenCLPrivateAddressSpaceAttrKind
  19. | Ptr32AttrKind
  20. | Ptr64AttrKind
  21. | SPtrAttrKind
  22. | TypeNonNullAttrKind
  23. | TypeNullUnspecifiedAttrKind
  24. | TypeNullableAttrKind
  25. | TypeNullableResultAttrKind
  26. | UPtrAttrKind
  27. | WebAssemblyFuncrefAttrKind
  28. | FallThroughAttrKind
  29. | LikelyAttrKind
  30. | MustTailAttrKind
  31. | OpenCLUnrollHintAttrKind
  32. | SuppressAttrKind
  33. | UnlikelyAttrKind
  34. | AlwaysInlineAttrKind
  35. | NoInlineAttrKind
  36. | NoMergeAttrKind
  37. | AArch64SVEPcsAttrKind
  38. | AArch64VectorPcsAttrKind
  39. | AMDGPUKernelCallAttrKind
  40. | AcquireHandleAttrKind
  41. | AnyX86NoCfCheckAttrKind
  42. | CDeclAttrKind
  43. | FastCallAttrKind
  44. | IntelOclBiccAttrKind
  45. | LifetimeBoundAttrKind
  46. | MSABIAttrKind
  47. | NSReturnsRetainedAttrKind
  48. | ObjCOwnershipAttrKind
  49. | PascalAttrKind
  50. | PcsAttrKind
  51. | PreserveAllAttrKind
  52. | PreserveMostAttrKind
  53. | RegCallAttrKind
  54. | StdCallAttrKind
  55. | SwiftAsyncCallAttrKind
  56. | SwiftCallAttrKind
  57. | SysVABIAttrKind
  58. | ThisCallAttrKind
  59. | VectorCallAttrKind
  60. | SwiftAsyncContextAttrKind
  61. | SwiftContextAttrKind
  62. | SwiftErrorResultAttrKind
  63. | SwiftIndirectResultAttrKind
  64. | AnnotateAttrKind
  65. | CFConsumedAttrKind
  66. | CarriesDependencyAttrKind
  67. | NSConsumedAttrKind
  68. | NonNullAttrKind
  69. | OSConsumedAttrKind
  70. | PassObjectSizeAttrKind
  71. | ReleaseHandleAttrKind
  72. | UseHandleAttrKind
  73. | HLSLSV_DispatchThreadIDAttrKind
  74. | HLSLSV_GroupIndexAttrKind
  75. | AMDGPUFlatWorkGroupSizeAttrKind
  76. | AMDGPUNumSGPRAttrKind
  77. | AMDGPUNumVGPRAttrKind
  78. | AMDGPUWavesPerEUAttrKind
  79. | ARMInterruptAttrKind
  80. | AVRInterruptAttrKind
  81. | AVRSignalAttrKind
  82. | AcquireCapabilityAttrKind
  83. | AcquiredAfterAttrKind
  84. | AcquiredBeforeAttrKind
  85. | AlignMac68kAttrKind
  86. | AlignNaturalAttrKind
  87. | AlignedAttrKind
  88. | AllocAlignAttrKind
  89. | AllocSizeAttrKind
  90. | AlwaysDestroyAttrKind
  91. | AnalyzerNoReturnAttrKind
  92. | AnyX86InterruptAttrKind
  93. | AnyX86NoCallerSavedRegistersAttrKind
  94. | ArcWeakrefUnavailableAttrKind
  95. | ArgumentWithTypeTagAttrKind
  96. | ArmBuiltinAliasAttrKind
  97. | ArtificialAttrKind
  98. | AsmLabelAttrKind
  99. | AssertCapabilityAttrKind
  100. | AssertExclusiveLockAttrKind
  101. | AssertSharedLockAttrKind
  102. | AssumeAlignedAttrKind
  103. | AssumptionAttrKind
  104. | AvailabilityAttrKind
  105. | AvailableOnlyInDefaultEvalMethodAttrKind
  106. | BPFPreserveAccessIndexAttrKind
  107. | BTFDeclTagAttrKind
  108. | BlocksAttrKind
  109. | BuiltinAttrKind
  110. | C11NoReturnAttrKind
  111. | CFAuditedTransferAttrKind
  112. | CFGuardAttrKind
  113. | CFICanonicalJumpTableAttrKind
  114. | CFReturnsNotRetainedAttrKind
  115. | CFReturnsRetainedAttrKind
  116. | CFUnknownTransferAttrKind
  117. | CPUDispatchAttrKind
  118. | CPUSpecificAttrKind
  119. | CUDAConstantAttrKind
  120. | CUDADeviceAttrKind
  121. | CUDADeviceBuiltinSurfaceTypeAttrKind
  122. | CUDADeviceBuiltinTextureTypeAttrKind
  123. | CUDAGlobalAttrKind
  124. | CUDAHostAttrKind
  125. | CUDAInvalidTargetAttrKind
  126. | CUDALaunchBoundsAttrKind
  127. | CUDASharedAttrKind
  128. | CXX11NoReturnAttrKind
  129. | CallableWhenAttrKind
  130. | CallbackAttrKind
  131. | CapabilityAttrKind
  132. | CapturedRecordAttrKind
  133. | CleanupAttrKind
  134. | CmseNSEntryAttrKind
  135. | CodeSegAttrKind
  136. | ColdAttrKind
  137. | CommonAttrKind
  138. | ConstAttrKind
  139. | ConstInitAttrKind
  140. | ConstructorAttrKind
  141. | ConsumableAttrKind
  142. | ConsumableAutoCastAttrKind
  143. | ConsumableSetOnReadAttrKind
  144. | ConvergentAttrKind
  145. | DLLExportAttrKind
  146. | DLLExportStaticLocalAttrKind
  147. | DLLImportAttrKind
  148. | DLLImportStaticLocalAttrKind
  149. | DeprecatedAttrKind
  150. | DestructorAttrKind
  151. | DiagnoseAsBuiltinAttrKind
  152. | DiagnoseIfAttrKind
  153. | DisableSanitizerInstrumentationAttrKind
  154. | DisableTailCallsAttrKind
  155. | EmptyBasesAttrKind
  156. | EnableIfAttrKind
  157. | EnforceTCBAttrKind
  158. | EnforceTCBLeafAttrKind
  159. | EnumExtensibilityAttrKind
  160. | ErrorAttrKind
  161. | ExcludeFromExplicitInstantiationAttrKind
  162. | ExclusiveTrylockFunctionAttrKind
  163. | ExternalSourceSymbolAttrKind
  164. | FinalAttrKind
  165. | FlagEnumAttrKind
  166. | FlattenAttrKind
  167. | FormatAttrKind
  168. | FormatArgAttrKind
  169. | FunctionReturnThunksAttrKind
  170. | GNUInlineAttrKind
  171. | GuardedByAttrKind
  172. | GuardedVarAttrKind
  173. | HIPManagedAttrKind
  174. | HLSLNumThreadsAttrKind
  175. | HLSLResourceAttrKind
  176. | HLSLResourceBindingAttrKind
  177. | HLSLShaderAttrKind
  178. | HotAttrKind
  179. | IBActionAttrKind
  180. | IBOutletAttrKind
  181. | IBOutletCollectionAttrKind
  182. | InitPriorityAttrKind
  183. | InternalLinkageAttrKind
  184. | LTOVisibilityPublicAttrKind
  185. | LayoutVersionAttrKind
  186. | LeafAttrKind
  187. | LockReturnedAttrKind
  188. | LocksExcludedAttrKind
  189. | M68kInterruptAttrKind
  190. | MIGServerRoutineAttrKind
  191. | MSAllocatorAttrKind
  192. | MSInheritanceAttrKind
  193. | MSNoVTableAttrKind
  194. | MSP430InterruptAttrKind
  195. | MSStructAttrKind
  196. | MSVtorDispAttrKind
  197. | MaxFieldAlignmentAttrKind
  198. | MayAliasAttrKind
  199. | MaybeUndefAttrKind
  200. | MicroMipsAttrKind
  201. | MinSizeAttrKind
  202. | MinVectorWidthAttrKind
  203. | Mips16AttrKind
  204. | MipsInterruptAttrKind
  205. | MipsLongCallAttrKind
  206. | MipsShortCallAttrKind
  207. | NSConsumesSelfAttrKind
  208. | NSErrorDomainAttrKind
  209. | NSReturnsAutoreleasedAttrKind
  210. | NSReturnsNotRetainedAttrKind
  211. | NVPTXKernelAttrKind
  212. | NakedAttrKind
  213. | NoAliasAttrKind
  214. | NoCommonAttrKind
  215. | NoDebugAttrKind
  216. | NoDestroyAttrKind
  217. | NoDuplicateAttrKind
  218. | NoInstrumentFunctionAttrKind
  219. | NoMicroMipsAttrKind
  220. | NoMips16AttrKind
  221. | NoProfileFunctionAttrKind
  222. | NoRandomizeLayoutAttrKind
  223. | NoReturnAttrKind
  224. | NoSanitizeAttrKind
  225. | NoSpeculativeLoadHardeningAttrKind
  226. | NoSplitStackAttrKind
  227. | NoStackProtectorAttrKind
  228. | NoThreadSafetyAnalysisAttrKind
  229. | NoThrowAttrKind
  230. | NoUniqueAddressAttrKind
  231. | NoUwtableAttrKind
  232. | NotTailCalledAttrKind
  233. | OMPAllocateDeclAttrKind
  234. | OMPCaptureNoInitAttrKind
  235. | OMPDeclareTargetDeclAttrKind
  236. | OMPDeclareVariantAttrKind
  237. | OMPThreadPrivateDeclAttrKind
  238. | OSConsumesThisAttrKind
  239. | OSReturnsNotRetainedAttrKind
  240. | OSReturnsRetainedAttrKind
  241. | OSReturnsRetainedOnNonZeroAttrKind
  242. | OSReturnsRetainedOnZeroAttrKind
  243. | ObjCBridgeAttrKind
  244. | ObjCBridgeMutableAttrKind
  245. | ObjCBridgeRelatedAttrKind
  246. | ObjCExceptionAttrKind
  247. | ObjCExplicitProtocolImplAttrKind
  248. | ObjCExternallyRetainedAttrKind
  249. | ObjCIndependentClassAttrKind
  250. | ObjCMethodFamilyAttrKind
  251. | ObjCNSObjectAttrKind
  252. | ObjCPreciseLifetimeAttrKind
  253. | ObjCRequiresPropertyDefsAttrKind
  254. | ObjCRequiresSuperAttrKind
  255. | ObjCReturnsInnerPointerAttrKind
  256. | ObjCRootClassAttrKind
  257. | ObjCSubclassingRestrictedAttrKind
  258. | OpenCLIntelReqdSubGroupSizeAttrKind
  259. | OpenCLKernelAttrKind
  260. | OptimizeNoneAttrKind
  261. | OverrideAttrKind
  262. | OwnerAttrKind
  263. | OwnershipAttrKind
  264. | PackedAttrKind
  265. | ParamTypestateAttrKind
  266. | PatchableFunctionEntryAttrKind
  267. | PointerAttrKind
  268. | PragmaClangBSSSectionAttrKind
  269. | PragmaClangDataSectionAttrKind
  270. | PragmaClangRelroSectionAttrKind
  271. | PragmaClangRodataSectionAttrKind
  272. | PragmaClangTextSectionAttrKind
  273. | PreferredNameAttrKind
  274. | PtGuardedByAttrKind
  275. | PtGuardedVarAttrKind
  276. | PureAttrKind
  277. | RISCVInterruptAttrKind
  278. | RandomizeLayoutAttrKind
  279. | ReadOnlyPlacementAttrKind
  280. | ReinitializesAttrKind
  281. | ReleaseCapabilityAttrKind
  282. | ReqdWorkGroupSizeAttrKind
  283. | RequiresCapabilityAttrKind
  284. | RestrictAttrKind
  285. | RetainAttrKind
  286. | ReturnTypestateAttrKind
  287. | ReturnsNonNullAttrKind
  288. | ReturnsTwiceAttrKind
  289. | SYCLKernelAttrKind
  290. | SYCLSpecialClassAttrKind
  291. | ScopedLockableAttrKind
  292. | SectionAttrKind
  293. | SelectAnyAttrKind
  294. | SentinelAttrKind
  295. | SetTypestateAttrKind
  296. | SharedTrylockFunctionAttrKind
  297. | SpeculativeLoadHardeningAttrKind
  298. | StandaloneDebugAttrKind
  299. | StrictFPAttrKind
  300. | StrictGuardStackCheckAttrKind
  301. | SwiftAsyncAttrKind
  302. | SwiftAsyncErrorAttrKind
  303. | SwiftAsyncNameAttrKind
  304. | SwiftAttrAttrKind
  305. | SwiftBridgeAttrKind
  306. | SwiftBridgedTypedefAttrKind
  307. | SwiftErrorAttrKind
  308. | SwiftNameAttrKind
  309. | SwiftNewTypeAttrKind
  310. | SwiftPrivateAttrKind
  311. | TLSModelAttrKind
  312. | TargetAttrKind
  313. | TargetClonesAttrKind
  314. | TargetVersionAttrKind
  315. | TestTypestateAttrKind
  316. | TransparentUnionAttrKind
  317. | TrivialABIAttrKind
  318. | TryAcquireCapabilityAttrKind
  319. | TypeTagForDatatypeAttrKind
  320. | TypeVisibilityAttrKind
  321. | UnavailableAttrKind
  322. | UninitializedAttrKind
  323. | UnsafeBufferUsageAttrKind
  324. | UnusedAttrKind
  325. | UsedAttrKind
  326. | UsingIfExistsAttrKind
  327. | UuidAttrKind
  328. | VecReturnAttrKind
  329. | VecTypeHintAttrKind
  330. | VisibilityAttrKind
  331. | WarnUnusedAttrKind
  332. | WarnUnusedResultAttrKind
  333. | WeakAttrKind
  334. | WeakImportAttrKind
  335. | WeakRefAttrKind
  336. | WebAssemblyExportNameAttrKind
  337. | WebAssemblyImportModuleAttrKind
  338. | WebAssemblyImportNameAttrKind
  339. | WorkGroupSizeHintAttrKind
  340. | X86ForceAlignArgPointerAttrKind
  341. | XRayInstrumentAttrKind
  342. | XRayLogArgsAttrKind
  343. | ZeroCallUsedRegsAttrKind
  344. | AbiTagAttrKind
  345. | AliasAttrKind
  346. | AlignValueAttrKind
  347. | BuiltinAliasAttrKind
  348. | CalledOnceAttrKind
  349. | IFuncAttrKind
  350. | InitSegAttrKind
  351. | LoaderUninitializedAttrKind
  352. | LoopHintAttrKind
  353. | ModeAttrKind
  354. | NoBuiltinAttrKind
  355. | NoEscapeAttrKind
  356. | OMPCaptureKindAttrKind
  357. | OMPDeclareSimdDeclAttrKind
  358. | OMPReferencedVarAttrKind
  359. | ObjCBoxableAttrKind
  360. | ObjCClassStubAttrKind
  361. | ObjCDesignatedInitializerAttrKind
  362. | ObjCDirectAttrKind
  363. | ObjCDirectMembersAttrKind
  364. | ObjCNonLazyClassAttrKind
  365. | ObjCNonRuntimeProtocolAttrKind
  366. | ObjCRuntimeNameAttrKind
  367. | ObjCRuntimeVisibleAttrKind
  368. | OpenCLAccessAttrKind
  369. | OverloadableAttrKind
  370. | RenderScriptKernelAttrKind
  371. | SwiftObjCMembersAttrKind
  372. | ThreadAttrKind
type binary_operator_kind = [
  1. | `PtrMemD
  2. | `PtrMemI
  3. | `Mul
  4. | `Div
  5. | `Rem
  6. | `Add
  7. | `Sub
  8. | `Shl
  9. | `Shr
  10. | `Cmp
  11. | `LT
  12. | `GT
  13. | `LE
  14. | `GE
  15. | `EQ
  16. | `NE
  17. | `And
  18. | `Xor
  19. | `Or
  20. | `LAnd
  21. | `LOr
  22. | `Assign
  23. | `MulAssign
  24. | `DivAssign
  25. | `RemAssign
  26. | `AddAssign
  27. | `SubAssign
  28. | `ShlAssign
  29. | `ShrAssign
  30. | `AndAssign
  31. | `XorAssign
  32. | `OrAssign
  33. | `Comma
]
type binary_operator_info = {
  1. boi_kind : binary_operator_kind;
}
type builtin_type_kind = [
  1. | `Void
  2. | `Bool
  3. | `Char_U
  4. | `UChar
  5. | `WChar_U
  6. | `Char8
  7. | `Char16
  8. | `Char32
  9. | `UShort
  10. | `UInt
  11. | `ULong
  12. | `ULongLong
  13. | `UInt128
  14. | `Char_S
  15. | `SChar
  16. | `WChar_S
  17. | `Short
  18. | `Int
  19. | `Long
  20. | `LongLong
  21. | `Int128
  22. | `ShortAccum
  23. | `Accum
  24. | `LongAccum
  25. | `UShortAccum
  26. | `UAccum
  27. | `ULongAccum
  28. | `ShortFract
  29. | `Fract
  30. | `LongFract
  31. | `UShortFract
  32. | `UFract
  33. | `ULongFract
  34. | `SatShortAccum
  35. | `SatAccum
  36. | `SatLongAccum
  37. | `SatUShortAccum
  38. | `SatUAccum
  39. | `SatULongAccum
  40. | `SatShortFract
  41. | `SatFract
  42. | `SatLongFract
  43. | `SatUShortFract
  44. | `SatUFract
  45. | `SatULongFract
  46. | `Half
  47. | `Float
  48. | `Double
  49. | `LongDouble
  50. | `Float16
  51. | `BFloat16
  52. | `Float128
  53. | `Ibm128
  54. | `NullPtr
  55. | `ObjCId
  56. | `ObjCClass
  57. | `ObjCSel
  58. | `OCLSampler
  59. | `OCLEvent
  60. | `OCLClkEvent
  61. | `OCLQueue
  62. | `OCLReserveID
  63. | `Dependent
  64. | `Overload
  65. | `BoundMember
  66. | `PseudoObject
  67. | `UnknownAny
  68. | `BuiltinFn
  69. | `ARCUnbridgedCast
  70. | `IncompleteMatrixIdx
  71. | `OMPArraySection
  72. | `OMPArrayShaping
  73. | `OMPIterator
  74. | `SveInt8
  75. | `SveInt16
  76. | `SveInt32
  77. | `SveInt64
  78. | `SveUint8
  79. | `SveUint16
  80. | `SveUint32
  81. | `SveUint64
  82. | `SveFloat16
  83. | `SveFloat32
  84. | `SveFloat64
  85. | `SveBFloat16
  86. | `SveInt8x2
  87. | `SveInt16x2
  88. | `SveInt32x2
  89. | `SveInt64x2
  90. | `SveUint8x2
  91. | `SveUint16x2
  92. | `SveUint32x2
  93. | `SveUint64x2
  94. | `SveFloat16x2
  95. | `SveFloat32x2
  96. | `SveFloat64x2
  97. | `SveBFloat16x2
  98. | `SveInt8x3
  99. | `SveInt16x3
  100. | `SveInt32x3
  101. | `SveInt64x3
  102. | `SveUint8x3
  103. | `SveUint16x3
  104. | `SveUint32x3
  105. | `SveUint64x3
  106. | `SveFloat16x3
  107. | `SveFloat32x3
  108. | `SveFloat64x3
  109. | `SveBFloat16x3
  110. | `SveInt8x4
  111. | `SveInt16x4
  112. | `SveInt32x4
  113. | `SveInt64x4
  114. | `SveUint8x4
  115. | `SveUint16x4
  116. | `SveUint32x4
  117. | `SveUint64x4
  118. | `SveFloat16x4
  119. | `SveFloat32x4
  120. | `SveFloat64x4
  121. | `SveBFloat16x4
  122. | `SveBool
  123. | `SveBoolx2
  124. | `SveBoolx4
  125. | `SveCount
]
type cast_kind = [
  1. | `Dependent
  2. | `BitCast
  3. | `LValueBitCast
  4. | `LValueToRValueBitCast
  5. | `LValueToRValue
  6. | `NoOp
  7. | `BaseToDerived
  8. | `DerivedToBase
  9. | `UncheckedDerivedToBase
  10. | `Dynamic
  11. | `ToUnion
  12. | `ArrayToPointerDecay
  13. | `FunctionToPointerDecay
  14. | `NullToPointer
  15. | `NullToMemberPointer
  16. | `BaseToDerivedMemberPointer
  17. | `DerivedToBaseMemberPointer
  18. | `MemberPointerToBoolean
  19. | `ReinterpretMemberPointer
  20. | `UserDefinedConversion
  21. | `ConstructorConversion
  22. | `IntegralToPointer
  23. | `PointerToIntegral
  24. | `PointerToBoolean
  25. | `ToVoid
  26. | `MatrixCast
  27. | `VectorSplat
  28. | `IntegralCast
  29. | `IntegralToBoolean
  30. | `IntegralToFloating
  31. | `FloatingToFixedPoint
  32. | `FixedPointToFloating
  33. | `FixedPointCast
  34. | `FixedPointToIntegral
  35. | `IntegralToFixedPoint
  36. | `FixedPointToBoolean
  37. | `FloatingToIntegral
  38. | `FloatingToBoolean
  39. | `BooleanToSignedIntegral
  40. | `FloatingCast
  41. | `CPointerToObjCPointerCast
  42. | `BlockPointerToObjCPointerCast
  43. | `AnyPointerToBlockPointerCast
  44. | `ObjCObjectLValueCast
  45. | `FloatingRealToComplex
  46. | `FloatingComplexToReal
  47. | `FloatingComplexToBoolean
  48. | `FloatingComplexCast
  49. | `FloatingComplexToIntegralComplex
  50. | `IntegralRealToComplex
  51. | `IntegralComplexToReal
  52. | `IntegralComplexToBoolean
  53. | `IntegralComplexCast
  54. | `IntegralComplexToFloatingComplex
  55. | `ARCProduceObject
  56. | `ARCConsumeObject
  57. | `ARCReclaimReturnedObject
  58. | `ARCExtendBlockObject
  59. | `AtomicToNonAtomic
  60. | `NonAtomicToAtomic
  61. | `CopyAndAutoreleaseBlockObject
  62. | `BuiltinFnToFnPtr
  63. | `ZeroToOCLOpaqueType
  64. | `AddressSpaceConversion
  65. | `IntToOCLSampler
]
type cxx_base_specifier = {
  1. xbs_name : string;
  2. xbs_virtual : bool;
}
type cast_expr_info = {
  1. cei_cast_kind : cast_kind;
  2. cei_base_path : cxx_base_specifier list;
}
type cxx_noexcept_expr_info = {
  1. xnee_value : bool;
}
type decl_context_info = {
  1. dci_has_external_lexical_storage : bool;
  2. dci_has_external_visible_storage : bool;
}
type decl_kind = [
  1. | `AccessSpec
  2. | `Block
  3. | `Captured
  4. | `ClassScopeFunctionSpecialization
  5. | `Empty
  6. | `Export
  7. | `ExternCContext
  8. | `FileScopeAsm
  9. | `Friend
  10. | `FriendTemplate
  11. | `ImplicitConceptSpecialization
  12. | `Import
  13. | `LifetimeExtendedTemporary
  14. | `LinkageSpec
  15. | `Named
  16. | `BaseUsing
  17. | `Using
  18. | `UsingEnum
  19. | `HLSLBuffer
  20. | `Label
  21. | `Namespace
  22. | `NamespaceAlias
  23. | `ObjCCompatibleAlias
  24. | `ObjCContainer
  25. | `ObjCCategory
  26. | `ObjCImpl
  27. | `ObjCCategoryImpl
  28. | `ObjCImplementation
  29. | `ObjCInterface
  30. | `ObjCProtocol
  31. | `ObjCMethod
  32. | `ObjCProperty
  33. | `Template
  34. | `BuiltinTemplate
  35. | `Concept
  36. | `RedeclarableTemplate
  37. | `ClassTemplate
  38. | `FunctionTemplate
  39. | `TypeAliasTemplate
  40. | `VarTemplate
  41. | `TemplateTemplateParm
  42. | `Type
  43. | `Tag
  44. | `Enum
  45. | `Record
  46. | `CXXRecord
  47. | `ClassTemplateSpecialization
  48. | `ClassTemplatePartialSpecialization
  49. | `TemplateTypeParm
  50. | `TypedefName
  51. | `ObjCTypeParam
  52. | `TypeAlias
  53. | `Typedef
  54. | `UnresolvedUsingTypename
  55. | `UnresolvedUsingIfExists
  56. | `UsingDirective
  57. | `UsingPack
  58. | `UsingShadow
  59. | `ConstructorUsingShadow
  60. | `Value
  61. | `Binding
  62. | `Declarator
  63. | `Field
  64. | `ObjCAtDefsField
  65. | `ObjCIvar
  66. | `Function
  67. | `CXXDeductionGuide
  68. | `CXXMethod
  69. | `CXXConstructor
  70. | `CXXConversion
  71. | `CXXDestructor
  72. | `MSProperty
  73. | `NonTypeTemplateParm
  74. | `Var
  75. | `Decomposition
  76. | `ImplicitParam
  77. | `OMPCapturedExpr
  78. | `ParmVar
  79. | `VarTemplateSpecialization
  80. | `VarTemplatePartialSpecialization
  81. | `EnumConstant
  82. | `IndirectField
  83. | `MSGuid
  84. | `OMPDeclareMapper
  85. | `OMPDeclareReduction
  86. | `TemplateParamObject
  87. | `UnnamedGlobalConstant
  88. | `UnresolvedUsingValue
  89. | `OMPAllocate
  90. | `OMPRequires
  91. | `OMPThreadPrivate
  92. | `ObjCPropertyImpl
  93. | `PragmaComment
  94. | `PragmaDetectMismatch
  95. | `RequiresExprBody
  96. | `StaticAssert
  97. | `TopLevelStmt
  98. | `TranslationUnit
]
type declaration_name_kind = [
  1. | `Identifier
  2. | `ObjCZeroArgSelector
  3. | `ObjCOneArgSelector
  4. | `ObjCMultiArgSelector
  5. | `CXXConstructorName
  6. | `CXXDestructorName
  7. | `CXXConversionFunctionName
  8. | `CXXOperatorName
  9. | `CXXLiteralOperatorName
  10. | `CXXUsingDirective
  11. | `CXXDeductionGuideName
]
type declaration_name = {
  1. dn_kind : declaration_name_kind;
  2. dn_name : string;
}
type enum_decl_scope = [
  1. | `Class
  2. | `Struct
]
type enum_decl_info = {
  1. edi_scope : enum_decl_scope option;
  2. edi_is_module_private : bool;
}
type input_kind = [
  1. | `IK_None
  2. | `IK_Asm
  3. | `IK_C
  4. | `IK_CXX
  5. | `IK_ObjC
  6. | `IK_ObjCXX
  7. | `IK_OpenCL
  8. | `IK_CUDA
  9. | `IK_HIP
  10. | `IK_RenderScript
  11. | `IK_LLVM_IR
  12. | `IK_HLSL
]
type integer_literal_info = {
  1. ili_is_signed : bool;
  2. ili_bitwidth : int;
  3. ili_value : string;
}
type integer_type_widths = {
  1. itw_char_type : int;
  2. itw_short_type : int;
  3. itw_int_type : int;
  4. itw_long_type : int;
  5. itw_longlong_type : int;
}
type lambda_capture_kind = [
  1. | `LCK_This
  2. | `LCK_ByCopy
  3. | `LCK_ByRef
  4. | `LCK_VLAType
  5. | `LCK_StarThis
]
type named_decl_info = {
  1. ni_name : string;
  2. ni_qual_name : string list;
}
type obj_c_access_control = [
  1. | `None
  2. | `Private
  3. | `Protected
  4. | `Public
  5. | `Package
]
type obj_c_availability_check_expr_info = {
  1. oacei_version : string option;
}
type obj_c_bridge_cast_kind = [
  1. | `OBC_BridgeRetained
  2. | `OBC_Bridge
  3. | `OBC_BridgeTransfer
]
type obj_c_bridged_cast_expr_info = {
  1. obcei_cast_kind : obj_c_bridge_cast_kind;
}
type obj_c_ivar_decl_info = {
  1. ovdi_is_synthesize : bool;
  2. ovdi_access_control : obj_c_access_control;
}
type obj_c_property_control = [
  1. | `None
  2. | `Required
  3. | `Optional
]
type obj_c_subscript_kind = [
  1. | `ArraySubscript
  2. | `DictionarySubscript
]
type objc_lifetime_attr = [
  1. | `OCL_None
  2. | `OCL_ExplicitNone
  3. | `OCL_Strong
  4. | `OCL_Weak
  5. | `OCL_Autoreleasing
]
type attr_type_info = {
  1. ati_attr_kind : attribute_kind;
  2. ati_lifetime : objc_lifetime_attr;
}
type object_kind = [
  1. | `Ordinary
  2. | `BitField
  3. | `ObjCProperty
  4. | `ObjCSubscript
  5. | `VectorComponent
]
type offset_of_expr_info = {
  1. ooe_literal : integer_literal_info option;
}
type pointer = int
type addr_label_expr_info = {
  1. alei_label : string;
  2. alei_pointer : pointer;
}
type cxx_new_expr_info = {
  1. xnei_is_array : bool;
  2. xnei_array_size_expr : pointer option;
  3. xnei_initializer_expr : pointer option;
  4. xnei_placement_args : pointer list;
}
type cxx_temporary = pointer
type cxx_bind_temporary_expr_info = {
  1. xbtei_cxx_temporary : cxx_temporary;
}
type goto_stmt_info = {
  1. gsi_label : string;
  2. gsi_pointer : pointer;
}
type obj_c_array_literal_expr_info = {
  1. oalei_array_method : pointer option;
}
type obj_c_dictionary_literal_expr_info = {
  1. odlei_dict_method : pointer option;
}
type predefined_expr_type = [
  1. | `Func
  2. | `Function
  3. | `LFunction
  4. | `FuncDName
  5. | `FuncSig
  6. | `LFuncSig
  7. | `PrettyFunction
  8. | `PrettyFunctionNoVirtual
]
type property_attribute = [
  1. | `Readonly
  2. | `Assign
  3. | `Readwrite
  4. | `Retain
  5. | `Copy
  6. | `Nonatomic
  7. | `Atomic
  8. | `Weak
  9. | `Strong
  10. | `Unsafe_unretained
  11. | `ExplicitGetter
  12. | `ExplicitSetter
]
type property_implementation = [
  1. | `Synthesize
  2. | `Dynamic
]
type record_decl_info = {
  1. rdi_definition_ptr : pointer;
  2. rdi_is_module_private : bool;
  3. rdi_is_complete_definition : bool;
  4. rdi_is_dependent_type : bool;
}
type selector = string
type obj_c_method_ref_info = {
  1. mri_getter : selector option;
  2. mri_setter : selector option;
}
type obj_c_subscript_ref_expr_info = {
  1. osrei_kind : obj_c_subscript_kind;
  2. osrei_getter : selector option;
  3. osrei_setter : selector option;
}
type objc_boxed_expr_info = {
  1. obei_boxing_method : selector option;
}
type sentinel_attr_info = {
  1. sai_sentinel : int;
  2. sai_null_pos : int;
}
type source_file = string
type source_location = {
  1. mutable sl_file : source_file option;
  2. mutable sl_line : int option;
  3. mutable sl_column : int option;
  4. sl_is_macro : bool;
  5. mutable sl_macro_file : source_file option;
  6. mutable sl_macro_line : int option;
}
type source_range = source_location * source_location
type attribute_info = {
  1. ai_pointer : pointer;
  2. ai_source_range : source_range;
}
type attr_tuple = attribute_info
type comment_info = {
  1. ci_parent_pointer : pointer;
  2. ci_source_range : source_range;
}
type specifier_kind = [
  1. | `Identifier
  2. | `Namespace
  3. | `NamespaceAlias
  4. | `TypeSpec
  5. | `TypeSpecWithTemplate
  6. | `Global
  7. | `Super
]
type stmt_info = {
  1. si_pointer : pointer;
  2. si_source_range : source_range;
}
type tag_kind = [
  1. | `TTK_Struct
  2. | `TTK_Interface
  3. | `TTK_Union
  4. | `TTK_Class
  5. | `TTK_Enum
]
type qual_type = {
  1. qt_type_ptr : type_ptr;
  2. qt_is_const : bool;
  3. qt_is_restrict : bool;
  4. qt_is_volatile : bool;
}
type array_type_info = {
  1. arti_element_type : qual_type;
  2. arti_stride : int option;
}
type compound_assign_operator_info = {
  1. caoi_lhs_type : qual_type;
  2. caoi_result_type : qual_type;
}
type cxx_delete_expr_info = {
  1. xdei_is_array : bool;
  2. xdei_destroyed_type : qual_type;
}
type decl_ref = {
  1. dr_kind : decl_kind;
  2. dr_decl_pointer : pointer;
  3. dr_name : named_decl_info option;
  4. dr_is_hidden : bool;
  5. dr_qual_type : qual_type option;
}
type cxx_construct_expr_info = {
  1. xcei_decl_ref : decl_ref;
  2. xcei_is_elidable : bool;
  3. xcei_requires_zero_initialization : bool;
  4. xcei_is_copy_constructor : bool;
}
type cxx_ctor_initializer_subject = [
  1. | `Member of decl_ref
  2. | `Delegating of type_ptr
  3. | `BaseClass of type_ptr * bool
]
type decl_ref_expr_info = {
  1. drti_decl_ref : decl_ref option;
  2. drti_found_decl_ref : decl_ref option;
}
type expr_with_cleanups_info = {
  1. ewci_decl_refs : decl_ref list;
}
type function_type_info = {
  1. fti_return_type : qual_type;
}
type materialize_temporary_expr_info = {
  1. mtei_decl_ref : decl_ref option;
}
type member_expr_info = {
  1. mei_is_arrow : bool;
  2. mei_performs_virtual_dispatch : bool;
  3. mei_name : named_decl_info;
  4. mei_decl_ref : decl_ref;
}
type namespace_decl_info = {
  1. ndi_is_inline : bool;
  2. ndi_original_namespace : decl_ref option;
}
type nested_name_specifier_loc = {
  1. nnsl_kind : specifier_kind;
  2. nnsl_ref : decl_ref option;
}
type namespace_alias_decl_info = {
  1. nadi_namespace_loc : source_location;
  2. nadi_target_name_loc : source_location;
  3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. nadi_namespace : decl_ref;
}
type obj_c_category_decl_info = {
  1. odi_class_interface : decl_ref option;
  2. odi_implementation : decl_ref option;
  3. odi_protocols : decl_ref list;
}
type obj_c_category_impl_decl_info = {
  1. ocidi_class_interface : decl_ref option;
  2. ocidi_category_decl : decl_ref option;
}
type obj_c_compatible_alias_decl_info = {
  1. ocadi_class_interface : decl_ref option;
}
type obj_c_interface_decl_info = {
  1. otdi_super : decl_ref option;
  2. otdi_implementation : decl_ref option;
  3. otdi_protocols : decl_ref list;
  4. otdi_known_categories : decl_ref list;
}
type obj_c_ivar_ref_expr_info = {
  1. ovrei_decl_ref : decl_ref;
  2. ovrei_pointer : pointer;
  3. ovrei_is_free_ivar : bool;
}
type obj_c_property_decl_info = {
  1. opdi_qual_type : qual_type;
  2. opdi_getter_method : decl_ref option;
  3. opdi_setter_method : decl_ref option;
  4. opdi_ivar_decl : decl_ref option;
  5. opdi_property_control : obj_c_property_control;
  6. opdi_property_attributes : property_attribute list;
}
type obj_c_property_impl_decl_info = {
  1. opidi_implementation : property_implementation;
  2. opidi_property_decl : decl_ref option;
  3. opidi_ivar_decl : decl_ref option;
}
type obj_c_protocol_decl_info = {
  1. opcdi_protocols : decl_ref list;
}
type objc_encode_expr_info = {
  1. oeei_qual_type : qual_type;
  2. oeei_raw : string;
}
type objc_object_type_info = {
  1. ooti_base_type : type_ptr;
  2. ooti_protocol_decls_ptr : pointer list;
  3. ooti_type_args : qual_type list;
}
type overload_expr_info = {
  1. oei_decls : decl_ref list;
  2. oei_name : declaration_name;
}
type params_type_info = {
  1. pti_params_type : qual_type list;
}
type property_ref_kind = [
  1. | `MethodRef of obj_c_method_ref_info
  2. | `PropertyRef of decl_ref
]
type obj_c_property_ref_expr_info = {
  1. oprei_kind : property_ref_kind;
  2. oprei_is_super_receiver : bool;
  3. oprei_is_messaging_getter : bool;
  4. oprei_is_messaging_setter : bool;
}
type receiver_kind = [
  1. | `Instance
  2. | `Class of qual_type
  3. | `SuperInstance
  4. | `SuperClass
]
type obj_c_message_expr_info = {
  1. omei_selector : string;
  2. omei_is_definition_found : bool;
  3. omei_decl_pointer : pointer option;
  4. omei_receiver_kind : receiver_kind;
}
type type_info = {
  1. ti_pointer : pointer;
  2. ti_desugared_type : type_ptr option;
}
type type_trait_info = {
  1. xtti_value : bool;
}
type typedef_decl_info = {
  1. tdi_is_module_private : bool;
}
type typedef_type_info = {
  1. tti_child_type : qual_type;
  2. tti_decl_ptr : pointer;
}
type c_type =
  1. | NoneType of type_info
  2. | AdjustedType of type_info * qual_type
  3. | DecayedType of type_info * qual_type
  4. | ConstantArrayType of type_info * array_type_info * int
  5. | DependentSizedArrayType of type_info * array_type_info
  6. | IncompleteArrayType of type_info * array_type_info
  7. | VariableArrayType of type_info * array_type_info * pointer
  8. | AtomicType of type_info * qual_type
  9. | AttributedType of type_info * attr_type_info
  10. | BTFTagAttributedType of type_info
  11. | BitIntType of type_info
  12. | BlockPointerType of type_info * qual_type
  13. | BuiltinType of type_info * builtin_type_kind
  14. | ComplexType of type_info
  15. | DecltypeType of type_info * qual_type
  16. | AutoType of type_info
  17. | DeducedTemplateSpecializationType of type_info
  18. | DependentAddressSpaceType of type_info
  19. | DependentBitIntType of type_info
  20. | DependentNameType of type_info
  21. | DependentSizedExtVectorType of type_info
  22. | DependentTemplateSpecializationType of type_info
  23. | DependentVectorType of type_info
  24. | ElaboratedType of type_info
  25. | FunctionNoProtoType of type_info * function_type_info
  26. | FunctionProtoType of type_info * function_type_info * params_type_info
  27. | InjectedClassNameType of type_info
  28. | MacroQualifiedType of type_info
  29. | ConstantMatrixType of type_info
  30. | DependentSizedMatrixType of type_info
  31. | MemberPointerType of type_info * qual_type
  32. | ObjCObjectPointerType of type_info * qual_type
  33. | ObjCObjectType of type_info * objc_object_type_info
  34. | ObjCInterfaceType of type_info * pointer
  35. | ObjCTypeParamType of type_info
  36. | PackExpansionType of type_info
  37. | ParenType of type_info * qual_type
  38. | PipeType of type_info
  39. | PointerType of type_info * qual_type
  40. | LValueReferenceType of type_info * qual_type
  41. | RValueReferenceType of type_info * qual_type
  42. | SubstTemplateTypeParmPackType of type_info
  43. | SubstTemplateTypeParmType of type_info
  44. | EnumType of type_info * pointer
  45. | RecordType of type_info * pointer
  46. | TemplateSpecializationType of type_info
  47. | TemplateTypeParmType of type_info
  48. | TypeOfExprType of type_info
  49. | TypeOfType of type_info
  50. | TypedefType of type_info * typedef_type_info
  51. | UnaryTransformType of type_info
  52. | UnresolvedUsingType of type_info
  53. | UsingType of type_info
  54. | VectorType of type_info
  55. | ExtVectorType of type_info
type translation_unit_decl_info = {
  1. tudi_input_path : source_file;
  2. tudi_input_kind : input_kind;
  3. tudi_integer_type_widths : integer_type_widths;
  4. tudi_is_objc_arc_on : bool;
  5. tudi_types : c_type list;
}
type unary_expr_or_type_trait_kind = [
  1. | `AlignOf
  2. | `OpenMPRequiredSimdAlign
  3. | `PreferredAlignOf
  4. | `SizeOf
  5. | `SizeOfWithSize of int
  6. | `VecStep
]
type unary_expr_or_type_trait_expr_info = {
  1. uttei_kind : unary_expr_or_type_trait_kind;
  2. uttei_qual_type : qual_type;
}
type unary_operator_kind = [
  1. | `PostInc
  2. | `PostDec
  3. | `PreInc
  4. | `PreDec
  5. | `AddrOf
  6. | `Deref
  7. | `Plus
  8. | `Minus
  9. | `Not
  10. | `LNot
  11. | `Real
  12. | `Imag
  13. | `Extension
  14. | `Coawait
]
type unary_operator_info = {
  1. uoi_kind : unary_operator_kind;
  2. uoi_is_postfix : bool;
}
type unresolved_lookup_expr_info = {
  1. ulei_requires_ADL : bool;
  2. ulei_is_overloaded : bool;
  3. ulei_naming_class : decl_ref option;
}
type using_directive_decl_info = {
  1. uddi_using_location : source_location;
  2. uddi_namespace_key_location : source_location;
  3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. uddi_nominated_namespace : decl_ref option;
}
type value_kind = [
  1. | `RValue
  2. | `LValue
  3. | `XValue
]
type expr_info = {
  1. ei_qual_type : qual_type;
  2. ei_value_kind : value_kind;
  3. ei_object_kind : object_kind;
}
type version_tuple = {
  1. vt_major : int;
  2. vt_minor : int option;
  3. vt_subminor : int option;
  4. vt_build : int option;
}
type availability_attr_info = {
  1. aai_platform : string option;
  2. aai_introduced : version_tuple;
}
type visibility_attr =
  1. | DefaultVisibility
  2. | HiddenVisibility
  3. | ProtectedVisibility
type attribute = [
  1. | `AddressSpaceAttr of attribute_info
  2. | `AnnotateTypeAttr of attribute_info
  3. | `ArmMveStrictPolymorphismAttr of attribute_info
  4. | `ArmStreamingAttr of attribute_info
  5. | `BTFTypeTagAttr of attribute_info
  6. | `CmseNSCallAttr of attribute_info
  7. | `HLSLGroupSharedAddressSpaceAttr of attribute_info
  8. | `NoDerefAttr of attribute_info
  9. | `ObjCGCAttr of attribute_info
  10. | `ObjCInertUnsafeUnretainedAttr of attribute_info
  11. | `ObjCKindOfAttr of attribute_info
  12. | `OpenCLConstantAddressSpaceAttr of attribute_info
  13. | `OpenCLGenericAddressSpaceAttr of attribute_info
  14. | `OpenCLGlobalAddressSpaceAttr of attribute_info
  15. | `OpenCLGlobalDeviceAddressSpaceAttr of attribute_info
  16. | `OpenCLGlobalHostAddressSpaceAttr of attribute_info
  17. | `OpenCLLocalAddressSpaceAttr of attribute_info
  18. | `OpenCLPrivateAddressSpaceAttr of attribute_info
  19. | `Ptr32Attr of attribute_info
  20. | `Ptr64Attr of attribute_info
  21. | `SPtrAttr of attribute_info
  22. | `TypeNonNullAttr of attribute_info
  23. | `TypeNullUnspecifiedAttr of attribute_info
  24. | `TypeNullableAttr of attribute_info
  25. | `TypeNullableResultAttr of attribute_info
  26. | `UPtrAttr of attribute_info
  27. | `WebAssemblyFuncrefAttr of attribute_info
  28. | `FallThroughAttr of attribute_info
  29. | `LikelyAttr of attribute_info
  30. | `MustTailAttr of attribute_info
  31. | `OpenCLUnrollHintAttr of attribute_info
  32. | `SuppressAttr of attribute_info
  33. | `UnlikelyAttr of attribute_info
  34. | `AlwaysInlineAttr of attribute_info
  35. | `NoInlineAttr of attribute_info
  36. | `NoMergeAttr of attribute_info
  37. | `AArch64SVEPcsAttr of attribute_info
  38. | `AArch64VectorPcsAttr of attribute_info
  39. | `AMDGPUKernelCallAttr of attribute_info
  40. | `AcquireHandleAttr of attribute_info
  41. | `AnyX86NoCfCheckAttr of attribute_info
  42. | `CDeclAttr of attribute_info
  43. | `FastCallAttr of attribute_info
  44. | `IntelOclBiccAttr of attribute_info
  45. | `LifetimeBoundAttr of attribute_info
  46. | `MSABIAttr of attribute_info
  47. | `NSReturnsRetainedAttr of attribute_info
  48. | `ObjCOwnershipAttr of attribute_info
  49. | `PascalAttr of attribute_info
  50. | `PcsAttr of attribute_info
  51. | `PreserveAllAttr of attribute_info
  52. | `PreserveMostAttr of attribute_info
  53. | `RegCallAttr of attribute_info
  54. | `StdCallAttr of attribute_info
  55. | `SwiftAsyncCallAttr of attribute_info
  56. | `SwiftCallAttr of attribute_info
  57. | `SysVABIAttr of attribute_info
  58. | `ThisCallAttr of attribute_info
  59. | `VectorCallAttr of attribute_info
  60. | `SwiftAsyncContextAttr of attribute_info
  61. | `SwiftContextAttr of attribute_info
  62. | `SwiftErrorResultAttr of attribute_info
  63. | `SwiftIndirectResultAttr of attribute_info
  64. | `AnnotateAttr of attr_tuple * string
  65. | `CFConsumedAttr of attribute_info
  66. | `CarriesDependencyAttr of attribute_info
  67. | `NSConsumedAttr of attribute_info
  68. | `NonNullAttr of attribute_info
  69. | `OSConsumedAttr of attribute_info
  70. | `PassObjectSizeAttr of attribute_info
  71. | `ReleaseHandleAttr of attribute_info
  72. | `UseHandleAttr of attribute_info
  73. | `HLSLSV_DispatchThreadIDAttr of attribute_info
  74. | `HLSLSV_GroupIndexAttr of attribute_info
  75. | `AMDGPUFlatWorkGroupSizeAttr of attribute_info
  76. | `AMDGPUNumSGPRAttr of attribute_info
  77. | `AMDGPUNumVGPRAttr of attribute_info
  78. | `AMDGPUWavesPerEUAttr of attribute_info
  79. | `ARMInterruptAttr of attribute_info
  80. | `AVRInterruptAttr of attribute_info
  81. | `AVRSignalAttr of attribute_info
  82. | `AcquireCapabilityAttr of attribute_info
  83. | `AcquiredAfterAttr of attribute_info
  84. | `AcquiredBeforeAttr of attribute_info
  85. | `AlignMac68kAttr of attribute_info
  86. | `AlignNaturalAttr of attribute_info
  87. | `AlignedAttr of attribute_info
  88. | `AllocAlignAttr of attribute_info
  89. | `AllocSizeAttr of attribute_info
  90. | `AlwaysDestroyAttr of attribute_info
  91. | `AnalyzerNoReturnAttr of attribute_info
  92. | `AnyX86InterruptAttr of attribute_info
  93. | `AnyX86NoCallerSavedRegistersAttr of attribute_info
  94. | `ArcWeakrefUnavailableAttr of attribute_info
  95. | `ArgumentWithTypeTagAttr of attribute_info
  96. | `ArmBuiltinAliasAttr of attribute_info
  97. | `ArtificialAttr of attribute_info
  98. | `AsmLabelAttr of attribute_info
  99. | `AssertCapabilityAttr of attribute_info
  100. | `AssertExclusiveLockAttr of attribute_info
  101. | `AssertSharedLockAttr of attribute_info
  102. | `AssumeAlignedAttr of attribute_info
  103. | `AssumptionAttr of attribute_info
  104. | `AvailabilityAttr of attr_tuple * availability_attr_info
  105. | `AvailableOnlyInDefaultEvalMethodAttr of attribute_info
  106. | `BPFPreserveAccessIndexAttr of attribute_info
  107. | `BTFDeclTagAttr of attribute_info
  108. | `BlocksAttr of attribute_info
  109. | `BuiltinAttr of attribute_info
  110. | `C11NoReturnAttr of attribute_info
  111. | `CFAuditedTransferAttr of attribute_info
  112. | `CFGuardAttr of attribute_info
  113. | `CFICanonicalJumpTableAttr of attribute_info
  114. | `CFReturnsNotRetainedAttr of attribute_info
  115. | `CFReturnsRetainedAttr of attribute_info
  116. | `CFUnknownTransferAttr of attribute_info
  117. | `CPUDispatchAttr of attribute_info
  118. | `CPUSpecificAttr of attribute_info
  119. | `CUDAConstantAttr of attribute_info
  120. | `CUDADeviceAttr of attribute_info
  121. | `CUDADeviceBuiltinSurfaceTypeAttr of attribute_info
  122. | `CUDADeviceBuiltinTextureTypeAttr of attribute_info
  123. | `CUDAGlobalAttr of attribute_info
  124. | `CUDAHostAttr of attribute_info
  125. | `CUDAInvalidTargetAttr of attribute_info
  126. | `CUDALaunchBoundsAttr of attribute_info
  127. | `CUDASharedAttr of attribute_info
  128. | `CXX11NoReturnAttr of attribute_info
  129. | `CallableWhenAttr of attribute_info
  130. | `CallbackAttr of attribute_info
  131. | `CapabilityAttr of attribute_info
  132. | `CapturedRecordAttr of attribute_info
  133. | `CleanupAttr of attribute_info
  134. | `CmseNSEntryAttr of attribute_info
  135. | `CodeSegAttr of attribute_info
  136. | `ColdAttr of attribute_info
  137. | `CommonAttr of attribute_info
  138. | `ConstAttr of attribute_info
  139. | `ConstInitAttr of attribute_info
  140. | `ConstructorAttr of attribute_info
  141. | `ConsumableAttr of attribute_info
  142. | `ConsumableAutoCastAttr of attribute_info
  143. | `ConsumableSetOnReadAttr of attribute_info
  144. | `ConvergentAttr of attribute_info
  145. | `DLLExportAttr of attribute_info
  146. | `DLLExportStaticLocalAttr of attribute_info
  147. | `DLLImportAttr of attribute_info
  148. | `DLLImportStaticLocalAttr of attribute_info
  149. | `DeprecatedAttr of attribute_info
  150. | `DestructorAttr of attribute_info
  151. | `DiagnoseAsBuiltinAttr of attribute_info
  152. | `DiagnoseIfAttr of attribute_info
  153. | `DisableSanitizerInstrumentationAttr of attribute_info
  154. | `DisableTailCallsAttr of attribute_info
  155. | `EmptyBasesAttr of attribute_info
  156. | `EnableIfAttr of attribute_info
  157. | `EnforceTCBAttr of attribute_info
  158. | `EnforceTCBLeafAttr of attribute_info
  159. | `EnumExtensibilityAttr of attribute_info
  160. | `ErrorAttr of attribute_info
  161. | `ExcludeFromExplicitInstantiationAttr of attribute_info
  162. | `ExclusiveTrylockFunctionAttr of attribute_info
  163. | `ExternalSourceSymbolAttr of attribute_info
  164. | `FinalAttr of attribute_info
  165. | `FlagEnumAttr of attribute_info
  166. | `FlattenAttr of attribute_info
  167. | `FormatAttr of attribute_info
  168. | `FormatArgAttr of attribute_info
  169. | `FunctionReturnThunksAttr of attribute_info
  170. | `GNUInlineAttr of attribute_info
  171. | `GuardedByAttr of attribute_info
  172. | `GuardedVarAttr of attribute_info
  173. | `HIPManagedAttr of attribute_info
  174. | `HLSLNumThreadsAttr of attribute_info
  175. | `HLSLResourceAttr of attribute_info
  176. | `HLSLResourceBindingAttr of attribute_info
  177. | `HLSLShaderAttr of attribute_info
  178. | `HotAttr of attribute_info
  179. | `IBActionAttr of attribute_info
  180. | `IBOutletAttr of attribute_info
  181. | `IBOutletCollectionAttr of attribute_info
  182. | `InitPriorityAttr of attribute_info
  183. | `InternalLinkageAttr of attribute_info
  184. | `LTOVisibilityPublicAttr of attribute_info
  185. | `LayoutVersionAttr of attribute_info
  186. | `LeafAttr of attribute_info
  187. | `LockReturnedAttr of attribute_info
  188. | `LocksExcludedAttr of attribute_info
  189. | `M68kInterruptAttr of attribute_info
  190. | `MIGServerRoutineAttr of attribute_info
  191. | `MSAllocatorAttr of attribute_info
  192. | `MSInheritanceAttr of attribute_info
  193. | `MSNoVTableAttr of attribute_info
  194. | `MSP430InterruptAttr of attribute_info
  195. | `MSStructAttr of attribute_info
  196. | `MSVtorDispAttr of attribute_info
  197. | `MaxFieldAlignmentAttr of attribute_info
  198. | `MayAliasAttr of attribute_info
  199. | `MaybeUndefAttr of attribute_info
  200. | `MicroMipsAttr of attribute_info
  201. | `MinSizeAttr of attribute_info
  202. | `MinVectorWidthAttr of attribute_info
  203. | `Mips16Attr of attribute_info
  204. | `MipsInterruptAttr of attribute_info
  205. | `MipsLongCallAttr of attribute_info
  206. | `MipsShortCallAttr of attribute_info
  207. | `NSConsumesSelfAttr of attribute_info
  208. | `NSErrorDomainAttr of attribute_info
  209. | `NSReturnsAutoreleasedAttr of attribute_info
  210. | `NSReturnsNotRetainedAttr of attribute_info
  211. | `NVPTXKernelAttr of attribute_info
  212. | `NakedAttr of attribute_info
  213. | `NoAliasAttr of attribute_info
  214. | `NoCommonAttr of attribute_info
  215. | `NoDebugAttr of attribute_info
  216. | `NoDestroyAttr of attribute_info
  217. | `NoDuplicateAttr of attribute_info
  218. | `NoInstrumentFunctionAttr of attribute_info
  219. | `NoMicroMipsAttr of attribute_info
  220. | `NoMips16Attr of attribute_info
  221. | `NoProfileFunctionAttr of attribute_info
  222. | `NoRandomizeLayoutAttr of attribute_info
  223. | `NoReturnAttr of attribute_info
  224. | `NoSanitizeAttr of attribute_info
  225. | `NoSpeculativeLoadHardeningAttr of attribute_info
  226. | `NoSplitStackAttr of attribute_info
  227. | `NoStackProtectorAttr of attribute_info
  228. | `NoThreadSafetyAnalysisAttr of attribute_info
  229. | `NoThrowAttr of attribute_info
  230. | `NoUniqueAddressAttr of attribute_info
  231. | `NoUwtableAttr of attribute_info
  232. | `NotTailCalledAttr of attribute_info
  233. | `OMPAllocateDeclAttr of attribute_info
  234. | `OMPCaptureNoInitAttr of attribute_info
  235. | `OMPDeclareTargetDeclAttr of attribute_info
  236. | `OMPDeclareVariantAttr of attribute_info
  237. | `OMPThreadPrivateDeclAttr of attribute_info
  238. | `OSConsumesThisAttr of attribute_info
  239. | `OSReturnsNotRetainedAttr of attribute_info
  240. | `OSReturnsRetainedAttr of attribute_info
  241. | `OSReturnsRetainedOnNonZeroAttr of attribute_info
  242. | `OSReturnsRetainedOnZeroAttr of attribute_info
  243. | `ObjCBridgeAttr of attribute_info
  244. | `ObjCBridgeMutableAttr of attribute_info
  245. | `ObjCBridgeRelatedAttr of attribute_info
  246. | `ObjCExceptionAttr of attribute_info
  247. | `ObjCExplicitProtocolImplAttr of attribute_info
  248. | `ObjCExternallyRetainedAttr of attribute_info
  249. | `ObjCIndependentClassAttr of attribute_info
  250. | `ObjCMethodFamilyAttr of attribute_info
  251. | `ObjCNSObjectAttr of attribute_info
  252. | `ObjCPreciseLifetimeAttr of attribute_info
  253. | `ObjCRequiresPropertyDefsAttr of attribute_info
  254. | `ObjCRequiresSuperAttr of attribute_info
  255. | `ObjCReturnsInnerPointerAttr of attribute_info
  256. | `ObjCRootClassAttr of attribute_info
  257. | `ObjCSubclassingRestrictedAttr of attribute_info
  258. | `OpenCLIntelReqdSubGroupSizeAttr of attribute_info
  259. | `OpenCLKernelAttr of attribute_info
  260. | `OptimizeNoneAttr of attribute_info
  261. | `OverrideAttr of attribute_info
  262. | `OwnerAttr of attribute_info
  263. | `OwnershipAttr of attribute_info
  264. | `PackedAttr of attribute_info
  265. | `ParamTypestateAttr of attribute_info
  266. | `PatchableFunctionEntryAttr of attribute_info
  267. | `PointerAttr of attribute_info
  268. | `PragmaClangBSSSectionAttr of attribute_info
  269. | `PragmaClangDataSectionAttr of attribute_info
  270. | `PragmaClangRelroSectionAttr of attribute_info
  271. | `PragmaClangRodataSectionAttr of attribute_info
  272. | `PragmaClangTextSectionAttr of attribute_info
  273. | `PreferredNameAttr of attribute_info
  274. | `PtGuardedByAttr of attribute_info
  275. | `PtGuardedVarAttr of attribute_info
  276. | `PureAttr of attribute_info
  277. | `RISCVInterruptAttr of attribute_info
  278. | `RandomizeLayoutAttr of attribute_info
  279. | `ReadOnlyPlacementAttr of attribute_info
  280. | `ReinitializesAttr of attribute_info
  281. | `ReleaseCapabilityAttr of attribute_info
  282. | `ReqdWorkGroupSizeAttr of attribute_info
  283. | `RequiresCapabilityAttr of attribute_info
  284. | `RestrictAttr of attribute_info
  285. | `RetainAttr of attribute_info
  286. | `ReturnTypestateAttr of attribute_info
  287. | `ReturnsNonNullAttr of attribute_info
  288. | `ReturnsTwiceAttr of attribute_info
  289. | `SYCLKernelAttr of attribute_info
  290. | `SYCLSpecialClassAttr of attribute_info
  291. | `ScopedLockableAttr of attribute_info
  292. | `SectionAttr of attribute_info
  293. | `SelectAnyAttr of attribute_info
  294. | `SentinelAttr of attr_tuple * sentinel_attr_info
  295. | `SetTypestateAttr of attribute_info
  296. | `SharedTrylockFunctionAttr of attribute_info
  297. | `SpeculativeLoadHardeningAttr of attribute_info
  298. | `StandaloneDebugAttr of attribute_info
  299. | `StrictFPAttr of attribute_info
  300. | `StrictGuardStackCheckAttr of attribute_info
  301. | `SwiftAsyncAttr of attribute_info
  302. | `SwiftAsyncErrorAttr of attribute_info
  303. | `SwiftAsyncNameAttr of attribute_info
  304. | `SwiftAttrAttr of attribute_info
  305. | `SwiftBridgeAttr of attribute_info
  306. | `SwiftBridgedTypedefAttr of attribute_info
  307. | `SwiftErrorAttr of attribute_info
  308. | `SwiftNameAttr of attribute_info
  309. | `SwiftNewTypeAttr of attribute_info
  310. | `SwiftPrivateAttr of attribute_info
  311. | `TLSModelAttr of attribute_info
  312. | `TargetAttr of attribute_info
  313. | `TargetClonesAttr of attribute_info
  314. | `TargetVersionAttr of attribute_info
  315. | `TestTypestateAttr of attribute_info
  316. | `TransparentUnionAttr of attribute_info
  317. | `TrivialABIAttr of attribute_info
  318. | `TryAcquireCapabilityAttr of attribute_info
  319. | `TypeTagForDatatypeAttr of attribute_info
  320. | `TypeVisibilityAttr of attribute_info
  321. | `UnavailableAttr of attribute_info
  322. | `UninitializedAttr of attribute_info
  323. | `UnsafeBufferUsageAttr of attribute_info
  324. | `UnusedAttr of attribute_info
  325. | `UsedAttr of attribute_info
  326. | `UsingIfExistsAttr of attribute_info
  327. | `UuidAttr of attribute_info
  328. | `VecReturnAttr of attribute_info
  329. | `VecTypeHintAttr of attribute_info
  330. | `VisibilityAttr of attr_tuple * visibility_attr
  331. | `WarnUnusedAttr of attribute_info
  332. | `WarnUnusedResultAttr of attribute_info
  333. | `WeakAttr of attribute_info
  334. | `WeakImportAttr of attribute_info
  335. | `WeakRefAttr of attribute_info
  336. | `WebAssemblyExportNameAttr of attribute_info
  337. | `WebAssemblyImportModuleAttr of attribute_info
  338. | `WebAssemblyImportNameAttr of attribute_info
  339. | `WorkGroupSizeHintAttr of attribute_info
  340. | `X86ForceAlignArgPointerAttr of attribute_info
  341. | `XRayInstrumentAttr of attribute_info
  342. | `XRayLogArgsAttr of attribute_info
  343. | `ZeroCallUsedRegsAttr of attribute_info
  344. | `AbiTagAttr of attribute_info
  345. | `AliasAttr of attribute_info
  346. | `AlignValueAttr of attribute_info
  347. | `BuiltinAliasAttr of attribute_info
  348. | `CalledOnceAttr of attribute_info
  349. | `IFuncAttr of attribute_info
  350. | `InitSegAttr of attribute_info
  351. | `LoaderUninitializedAttr of attribute_info
  352. | `LoopHintAttr of attribute_info
  353. | `ModeAttr of attribute_info
  354. | `NoBuiltinAttr of attribute_info
  355. | `NoEscapeAttr of attribute_info
  356. | `OMPCaptureKindAttr of attribute_info
  357. | `OMPDeclareSimdDeclAttr of attribute_info
  358. | `OMPReferencedVarAttr of attribute_info
  359. | `ObjCBoxableAttr of attribute_info
  360. | `ObjCClassStubAttr of attribute_info
  361. | `ObjCDesignatedInitializerAttr of attribute_info
  362. | `ObjCDirectAttr of attribute_info
  363. | `ObjCDirectMembersAttr of attribute_info
  364. | `ObjCNonLazyClassAttr of attribute_info
  365. | `ObjCNonRuntimeProtocolAttr of attribute_info
  366. | `ObjCRuntimeNameAttr of attribute_info
  367. | `ObjCRuntimeVisibleAttr of attribute_info
  368. | `OpenCLAccessAttr of attribute_info
  369. | `OverloadableAttr of attribute_info
  370. | `RenderScriptKernelAttr of attribute_info
  371. | `SwiftObjCMembersAttr of attribute_info
  372. | `ThreadAttr of attribute_info
]
type template_instantiation_arg_info = [
  1. | `Null
  2. | `Type of qual_type
  3. | `Declaration of pointer
  4. | `NullPtr
  5. | `Integral of string
  6. | `Template
  7. | `TemplateExpansion
  8. | `Expression
  9. | `Pack of template_instantiation_arg_info list
]
type comment =
  1. | BlockCommandComment of comment_info * comment list
  2. | ParamCommandComment of comment_info * comment list
  3. | TParamCommandComment of comment_info * comment list
  4. | VerbatimBlockComment of comment_info * comment list
  5. | VerbatimLineComment of comment_info * comment list
  6. | ParagraphComment of comment_info * comment list
  7. | FullComment of comment_info * comment list
  8. | HTMLEndTagComment of comment_info * comment list
  9. | HTMLStartTagComment of comment_info * comment list
  10. | InlineCommandComment of comment_info * comment list
  11. | TextComment of comment_info * comment list
  12. | VerbatimBlockLineComment of comment_info * comment list
type template_specialization_info = {
  1. tsi_template_decl : pointer;
  2. tsi_specialization_args : template_instantiation_arg_info list;
}
type decl_info = {
  1. di_pointer : pointer;
  2. di_parent_pointer : pointer option;
  3. di_source_range : source_range;
  4. di_owning_module : string option;
  5. di_is_hidden : bool;
  6. di_is_implicit : bool;
  7. di_is_used : bool;
  8. di_is_this_declaration_referenced : bool;
  9. di_is_invalid_decl : bool;
  10. di_attributes : attribute list;
  11. di_full_comment : comment option;
  12. di_access : access_specifier;
}
type block_captured_variable = {
  1. bcv_is_by_ref : bool;
  2. bcv_is_nested : bool;
  3. bcv_variable : decl_ref option;
  4. bcv_copy_expr : stmt option;
}
and block_decl_info = {
  1. bdi_parameters : decl list;
  2. bdi_is_variadic : bool;
  3. bdi_captures_cxx_this : bool;
  4. bdi_captured_variables : block_captured_variable list;
  5. bdi_body : stmt option;
  6. bdi_mangled_name : string;
}
and coreturn_stmt_info = {
  1. coret_operand : stmt option;
  2. coret_promise_call : stmt option;
}
and coro_body_stmt_info = {
  1. cbs_body : pointer;
  2. cbs_promise_decl_stmt : pointer;
  3. cbs_return_value : stmt;
}
and cxx_catch_stmt_info = {
  1. xcsi_variable : decl option;
}
and cxx_ctor_initializer = {
  1. xci_subject : cxx_ctor_initializer_subject;
  2. xci_source_range : source_range;
  3. xci_init_expr : stmt option;
}
and cxx_default_expr_info = {
  1. xdaei_init_expr : stmt option;
}
and cxx_method_decl_info = {
  1. xmdi_is_virtual : bool;
  2. xmdi_is_static : bool;
  3. xmdi_is_const : bool;
  4. xmdi_is_copy_assignment : bool;
  5. xmdi_is_copy_constructor : bool;
  6. xmdi_is_move_constructor : bool;
  7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
  8. xmdi_overriden_methods : decl_ref list;
}
and cxx_record_decl_info = {
  1. xrdi_bases : type_ptr list;
  2. xrdi_vbases : type_ptr list;
  3. xrdi_transitive_vbases : type_ptr list;
  4. xrdi_is_pod : bool;
  5. xrdi_is_trivially_copyable : bool;
  6. xrdi_destructor : decl_ref option;
  7. xrdi_lambda_call_operator : decl_ref option;
  8. xrdi_lambda_captures : lambda_capture_info list;
}
and decl =
  1. | AccessSpecDecl of decl_info
  2. | BlockDecl of decl_info * block_decl_info
  3. | CapturedDecl of decl_info * decl list * decl_context_info
  4. | ClassScopeFunctionSpecializationDecl of decl_info
  5. | EmptyDecl of decl_info
  6. | ExportDecl of decl_info
  7. | ExternCContextDecl of decl_info
  8. | FileScopeAsmDecl of decl_info
  9. | FriendDecl of decl_info * friend_info
  10. | FriendTemplateDecl of decl_info
  11. | ImplicitConceptSpecializationDecl of decl_info
  12. | ImportDecl of decl_info * string
  13. | LifetimeExtendedTemporaryDecl of decl_info
  14. | LinkageSpecDecl of decl_info * decl list * decl_context_info
  15. | UsingDecl of decl_info * named_decl_info
  16. | UsingEnumDecl of decl_info * named_decl_info
  17. | HLSLBufferDecl of decl_info * named_decl_info
  18. | LabelDecl of decl_info * named_decl_info
  19. | NamespaceDecl of decl_info * named_decl_info * decl list * decl_context_info * namespace_decl_info
  20. | NamespaceAliasDecl of decl_info * named_decl_info * namespace_alias_decl_info
  21. | ObjCCompatibleAliasDecl of decl_info * named_decl_info * obj_c_compatible_alias_decl_info
  22. | ObjCCategoryDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_category_decl_info
  23. | ObjCCategoryImplDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_category_impl_decl_info
  24. | ObjCImplementationDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_implementation_decl_info
  25. | ObjCInterfaceDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_interface_decl_info
  26. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_protocol_decl_info
  27. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
  28. | ObjCPropertyDecl of decl_info * named_decl_info * obj_c_property_decl_info
  29. | BuiltinTemplateDecl of decl_info * named_decl_info
  30. | ConceptDecl of decl_info * named_decl_info
  31. | ClassTemplateDecl of decl_info * named_decl_info * template_decl_info
  32. | FunctionTemplateDecl of decl_info * named_decl_info * template_decl_info
  33. | TypeAliasTemplateDecl of decl_info * named_decl_info
  34. | VarTemplateDecl of decl_info * named_decl_info
  35. | TemplateTemplateParmDecl of decl_info * named_decl_info
  36. | EnumDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * enum_decl_info
  37. | RecordDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info
  38. | CXXRecordDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info
  39. | ClassTemplateSpecializationDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info * string * source_location * template_specialization_info
  40. | ClassTemplatePartialSpecializationDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info * string * source_location * template_specialization_info
  41. | TemplateTypeParmDecl of decl_info * named_decl_info * type_ptr
  42. | ObjCTypeParamDecl of decl_info * named_decl_info * type_ptr
  43. | TypeAliasDecl of decl_info * named_decl_info * type_ptr
  44. | TypedefDecl of decl_info * named_decl_info * type_ptr * typedef_decl_info
  45. | UnresolvedUsingTypenameDecl of decl_info * named_decl_info * type_ptr
  46. | UnresolvedUsingIfExistsDecl of decl_info * named_decl_info
  47. | UsingDirectiveDecl of decl_info * named_decl_info * using_directive_decl_info
  48. | UsingPackDecl of decl_info * named_decl_info
  49. | UsingShadowDecl of decl_info * named_decl_info
  50. | ConstructorUsingShadowDecl of decl_info * named_decl_info
  51. | BindingDecl of decl_info * named_decl_info * qual_type * holding_var_decl_info
  52. | FieldDecl of decl_info * named_decl_info * qual_type * field_decl_info
  53. | ObjCAtDefsFieldDecl of decl_info * named_decl_info * qual_type * field_decl_info
  54. | ObjCIvarDecl of decl_info * named_decl_info * qual_type * field_decl_info * obj_c_ivar_decl_info
  55. | FunctionDecl of decl_info * named_decl_info * qual_type * function_decl_info
  56. | CXXDeductionGuideDecl of decl_info * named_decl_info * qual_type * function_decl_info
  57. | CXXMethodDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  58. | CXXConstructorDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  59. | CXXConversionDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  60. | CXXDestructorDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  61. | MSPropertyDecl of decl_info * named_decl_info * qual_type
  62. | NonTypeTemplateParmDecl of decl_info * named_decl_info * qual_type
  63. | VarDecl of decl_info * named_decl_info * qual_type * var_decl_info
  64. | DecompositionDecl of decl_info * named_decl_info * qual_type * var_decl_info * decl list
  65. | ImplicitParamDecl of decl_info * named_decl_info * qual_type * var_decl_info
  66. | OMPCapturedExprDecl of decl_info * named_decl_info * qual_type * var_decl_info
  67. | ParmVarDecl of decl_info * named_decl_info * qual_type * var_decl_info
  68. | VarTemplateSpecializationDecl of template_instantiation_arg_info list * decl_info * named_decl_info * qual_type * var_decl_info
  69. | VarTemplatePartialSpecializationDecl of template_instantiation_arg_info list * decl_info * named_decl_info * qual_type * var_decl_info
  70. | EnumConstantDecl of decl_info * named_decl_info * qual_type * enum_constant_decl_info
  71. | IndirectFieldDecl of decl_info * named_decl_info * qual_type * decl_ref list
  72. | MSGuidDecl of decl_info * named_decl_info * qual_type
  73. | OMPDeclareMapperDecl of decl_info * named_decl_info * qual_type
  74. | OMPDeclareReductionDecl of decl_info * named_decl_info * qual_type
  75. | TemplateParamObjectDecl of decl_info * named_decl_info * qual_type
  76. | UnnamedGlobalConstantDecl of decl_info * named_decl_info * qual_type
  77. | UnresolvedUsingValueDecl of decl_info * named_decl_info * qual_type
  78. | OMPAllocateDecl of decl_info
  79. | OMPRequiresDecl of decl_info
  80. | OMPThreadPrivateDecl of decl_info
  81. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
  82. | PragmaCommentDecl of decl_info
  83. | PragmaDetectMismatchDecl of decl_info
  84. | RequiresExprBodyDecl of decl_info
  85. | StaticAssertDecl of decl_info
  86. | TopLevelStmtDecl of decl_info
  87. | TranslationUnitDecl of decl_info * decl list * decl_context_info * translation_unit_decl_info
and enum_constant_decl_info = {
  1. ecdi_init_expr : stmt option;
}
and field_decl_info = {
  1. fldi_is_mutable : bool;
  2. fldi_is_module_private : bool;
  3. fldi_init_expr : stmt option;
  4. fldi_bit_width_expr : stmt option;
}
and friend_info = [
  1. | `Type of type_ptr
  2. | `Decl of decl
]
and function_decl_info = {
  1. fdi_mangled_name : string option;
  2. fdi_is_cpp : bool;
  3. fdi_is_inline : bool;
  4. fdi_is_module_private : bool;
  5. fdi_is_pure : bool;
  6. fdi_is_deleted : bool;
  7. fdi_is_no_return : bool;
  8. fdi_is_constexpr : bool;
  9. fdi_is_variadic : bool;
  10. fdi_is_static : bool;
  11. fdi_parameters : decl list;
  12. fdi_decl_ptr_with_body : pointer option;
  13. fdi_body : stmt option;
  14. fdi_template_specialization : template_specialization_info option;
  15. fdi_point_of_instantiation : source_location option;
}
and generic_selection_info = {
  1. gse_value : stmt option;
}
and holding_var_decl_info = {
  1. hvdi_binding_var : var_decl_info option;
}
and if_stmt_info = {
  1. isi_init : pointer option;
  2. isi_cond_var : stmt option;
  3. isi_cond : pointer;
  4. isi_then : pointer;
  5. isi_else : (pointer * source_location) option;
}
and lambda_capture_info = {
  1. lci_capture_kind : lambda_capture_kind;
  2. lci_capture_this : bool;
  3. lci_capture_variable : bool;
  4. lci_capture_VLAtype : bool;
  5. lci_init_captured_vardecl : decl option;
  6. lci_captured_var : decl_ref option;
  7. lci_is_implicit : bool;
  8. lci_location : source_range;
  9. lci_is_pack_expansion : bool;
}
and lambda_expr_info = {
  1. lei_lambda_decl : decl;
}
and obj_c_implementation_decl_info = {
  1. oidi_super : decl_ref option;
  2. oidi_class_interface : decl_ref option;
  3. oidi_ivar_initializers : cxx_ctor_initializer list;
}
and obj_c_message_expr_kind = [
  1. | `CatchParam of decl
  2. | `CatchAll
]
and obj_c_method_decl_info = {
  1. omdi_is_instance_method : bool;
  2. omdi_result_type : qual_type;
  3. omdi_is_property_accessor : bool;
  4. omdi_property_decl : decl_ref option;
  5. omdi_parameters : decl list;
  6. omdi_implicit_parameters : decl list;
  7. omdi_is_variadic : bool;
  8. omdi_is_overriding : bool;
  9. omdi_is_optional : bool;
  10. omdi_body : stmt option;
  11. omdi_mangled_name : string;
}
and opaque_value_expr_info = {
  1. ovei_source_expr : stmt option;
}
and stmt =
  1. | GCCAsmStmt of stmt_info * stmt list
  2. | MSAsmStmt of stmt_info * stmt list
  3. | BreakStmt of stmt_info * stmt list
  4. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  5. | CXXForRangeStmt of stmt_info * stmt list
  6. | CXXTryStmt of stmt_info * stmt list
  7. | CapturedStmt of stmt_info * stmt list
  8. | CompoundStmt of stmt_info * stmt list
  9. | ContinueStmt of stmt_info * stmt list
  10. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  11. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  12. | DeclStmt of stmt_info * stmt list * decl list
  13. | DoStmt of stmt_info * stmt list
  14. | ForStmt of stmt_info * stmt list
  15. | GotoStmt of stmt_info * stmt list * goto_stmt_info
  16. | IfStmt of stmt_info * stmt list * if_stmt_info
  17. | IndirectGotoStmt of stmt_info * stmt list
  18. | MSDependentExistsStmt of stmt_info * stmt list
  19. | NullStmt of stmt_info * stmt list
  20. | OMPCanonicalLoop of stmt_info * stmt list
  21. | OMPAtomicDirective of stmt_info * stmt list
  22. | OMPBarrierDirective of stmt_info * stmt list
  23. | OMPCancelDirective of stmt_info * stmt list
  24. | OMPCancellationPointDirective of stmt_info * stmt list
  25. | OMPCriticalDirective of stmt_info * stmt list
  26. | OMPDepobjDirective of stmt_info * stmt list
  27. | OMPDispatchDirective of stmt_info * stmt list
  28. | OMPErrorDirective of stmt_info * stmt list
  29. | OMPFlushDirective of stmt_info * stmt list
  30. | OMPInteropDirective of stmt_info * stmt list
  31. | OMPDistributeDirective of stmt_info * stmt list
  32. | OMPDistributeParallelForDirective of stmt_info * stmt list
  33. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  34. | OMPDistributeSimdDirective of stmt_info * stmt list
  35. | OMPForDirective of stmt_info * stmt list
  36. | OMPForSimdDirective of stmt_info * stmt list
  37. | OMPGenericLoopDirective of stmt_info * stmt list
  38. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  39. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  40. | OMPMasterTaskLoopDirective of stmt_info * stmt list
  41. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  42. | OMPParallelForDirective of stmt_info * stmt list
  43. | OMPParallelForSimdDirective of stmt_info * stmt list
  44. | OMPParallelGenericLoopDirective of stmt_info * stmt list
  45. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  46. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  47. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  48. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  49. | OMPSimdDirective of stmt_info * stmt list
  50. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  51. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  52. | OMPTargetSimdDirective of stmt_info * stmt list
  53. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  54. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  55. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  56. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  57. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  58. | OMPTaskLoopDirective of stmt_info * stmt list
  59. | OMPTaskLoopSimdDirective of stmt_info * stmt list
  60. | OMPTeamsDistributeDirective of stmt_info * stmt list
  61. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  62. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  63. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  64. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  65. | OMPTileDirective of stmt_info * stmt list
  66. | OMPUnrollDirective of stmt_info * stmt list
  67. | OMPMaskedDirective of stmt_info * stmt list
  68. | OMPMasterDirective of stmt_info * stmt list
  69. | OMPMetaDirective of stmt_info * stmt list
  70. | OMPOrderedDirective of stmt_info * stmt list
  71. | OMPParallelDirective of stmt_info * stmt list
  72. | OMPParallelMaskedDirective of stmt_info * stmt list
  73. | OMPParallelMasterDirective of stmt_info * stmt list
  74. | OMPParallelSectionsDirective of stmt_info * stmt list
  75. | OMPScanDirective of stmt_info * stmt list
  76. | OMPSectionDirective of stmt_info * stmt list
  77. | OMPSectionsDirective of stmt_info * stmt list
  78. | OMPSingleDirective of stmt_info * stmt list
  79. | OMPTargetDataDirective of stmt_info * stmt list
  80. | OMPTargetDirective of stmt_info * stmt list
  81. | OMPTargetEnterDataDirective of stmt_info * stmt list
  82. | OMPTargetExitDataDirective of stmt_info * stmt list
  83. | OMPTargetParallelDirective of stmt_info * stmt list
  84. | OMPTargetParallelForDirective of stmt_info * stmt list
  85. | OMPTargetTeamsDirective of stmt_info * stmt list
  86. | OMPTargetUpdateDirective of stmt_info * stmt list
  87. | OMPTaskDirective of stmt_info * stmt list
  88. | OMPTaskgroupDirective of stmt_info * stmt list
  89. | OMPTaskwaitDirective of stmt_info * stmt list
  90. | OMPTaskyieldDirective of stmt_info * stmt list
  91. | OMPTeamsDirective of stmt_info * stmt list
  92. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  93. | ObjCAtFinallyStmt of stmt_info * stmt list
  94. | ObjCAtSynchronizedStmt of stmt_info * stmt list
  95. | ObjCAtThrowStmt of stmt_info * stmt list
  96. | ObjCAtTryStmt of stmt_info * stmt list
  97. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  98. | ObjCForCollectionStmt of stmt_info * stmt list
  99. | ReturnStmt of stmt_info * stmt list
  100. | SEHExceptStmt of stmt_info * stmt list
  101. | SEHFinallyStmt of stmt_info * stmt list
  102. | SEHLeaveStmt of stmt_info * stmt list
  103. | SEHTryStmt of stmt_info * stmt list
  104. | CaseStmt of stmt_info * stmt list
  105. | DefaultStmt of stmt_info * stmt list
  106. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  107. | AttributedStmt of stmt_info * stmt list * attribute list
  108. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  109. | ConditionalOperator of stmt_info * stmt list * expr_info
  110. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  111. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  112. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  113. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  114. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  115. | AsTypeExpr of stmt_info * stmt list * expr_info
  116. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  117. | BinaryOperator of stmt_info * stmt list * expr_info * binary_operator_info
  118. | CompoundAssignOperator of stmt_info * stmt list * expr_info * binary_operator_info * compound_assign_operator_info
  119. | BlockExpr of stmt_info * stmt list * expr_info * decl
  120. | CXXBindTemporaryExpr of stmt_info * stmt list * expr_info * cxx_bind_temporary_expr_info
  121. | CXXBoolLiteralExpr of stmt_info * stmt list * expr_info * int
  122. | CXXConstructExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  123. | CXXTemporaryObjectExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  124. | CXXDefaultArgExpr of stmt_info * stmt list * expr_info * cxx_default_expr_info
  125. | CXXDefaultInitExpr of stmt_info * stmt list * expr_info * cxx_default_expr_info
  126. | CXXDeleteExpr of stmt_info * stmt list * expr_info * cxx_delete_expr_info
  127. | CXXDependentScopeMemberExpr of stmt_info * stmt list * expr_info
  128. | CXXFoldExpr of stmt_info * stmt list * expr_info
  129. | CXXInheritedCtorInitExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  130. | CXXNewExpr of stmt_info * stmt list * expr_info * cxx_new_expr_info
  131. | CXXNoexceptExpr of stmt_info * stmt list * expr_info * cxx_noexcept_expr_info
  132. | CXXNullPtrLiteralExpr of stmt_info * stmt list * expr_info
  133. | CXXParenListInitExpr of stmt_info * stmt list * expr_info
  134. | CXXPseudoDestructorExpr of stmt_info * stmt list * expr_info
  135. | CXXRewrittenBinaryOperator of stmt_info * stmt list * expr_info
  136. | CXXScalarValueInitExpr of stmt_info * stmt list * expr_info
  137. | CXXStdInitializerListExpr of stmt_info * stmt list * expr_info
  138. | CXXThisExpr of stmt_info * stmt list * expr_info
  139. | CXXThrowExpr of stmt_info * stmt list * expr_info
  140. | CXXTypeidExpr of stmt_info * stmt list * expr_info
  141. | CXXUnresolvedConstructExpr of stmt_info * stmt list * expr_info
  142. | CXXUuidofExpr of stmt_info * stmt list * expr_info
  143. | CallExpr of stmt_info * stmt list * expr_info
  144. | CUDAKernelCallExpr of stmt_info * stmt list * expr_info
  145. | CXXMemberCallExpr of stmt_info * stmt list * expr_info
  146. | CXXOperatorCallExpr of stmt_info * stmt list * expr_info
  147. | UserDefinedLiteral of stmt_info * stmt list * expr_info
  148. | BuiltinBitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  149. | CStyleCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  150. | CXXFunctionalCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  151. | CXXAddrspaceCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  152. | CXXConstCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  153. | CXXDynamicCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  154. | CXXReinterpretCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  155. | CXXStaticCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  156. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * obj_c_bridged_cast_expr_info
  157. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
  158. | CharacterLiteral of stmt_info * stmt list * expr_info * int
  159. | ChooseExpr of stmt_info * stmt list * expr_info
  160. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
  161. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
  162. | ConvertVectorExpr of stmt_info * stmt list * expr_info
  163. | CoawaitExpr of stmt_info * stmt list * expr_info
  164. | CoyieldExpr of stmt_info * stmt list * expr_info
  165. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
  166. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
  167. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
  168. | DesignatedInitExpr of stmt_info * stmt list * expr_info
  169. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
  170. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
  171. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
  172. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
  173. | FloatingLiteral of stmt_info * stmt list * expr_info * string
  174. | ConstantExpr of stmt_info * stmt list * expr_info
  175. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
  176. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
  177. | GNUNullExpr of stmt_info * stmt list * expr_info
  178. | GenericSelectionExpr of stmt_info * stmt list * expr_info * generic_selection_info
  179. | ImaginaryLiteral of stmt_info * stmt list * expr_info
  180. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
  181. | InitListExpr of stmt_info * stmt list * expr_info
  182. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
  183. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
  184. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
  185. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
  186. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
  187. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
  188. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
  189. | NoInitExpr of stmt_info * stmt list * expr_info
  190. | OMPArraySectionExpr of stmt_info * stmt list * expr_info
  191. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
  192. | OMPIteratorExpr of stmt_info * stmt list * expr_info
  193. | ObjCArrayLiteral of stmt_info * stmt list * expr_info * obj_c_array_literal_expr_info
  194. | ObjCAvailabilityCheckExpr of stmt_info * stmt list * expr_info * obj_c_availability_check_expr_info
  195. | ObjCBoolLiteralExpr of stmt_info * stmt list * expr_info * int
  196. | ObjCBoxedExpr of stmt_info * stmt list * expr_info * objc_boxed_expr_info
  197. | ObjCDictionaryLiteral of stmt_info * stmt list * expr_info * obj_c_dictionary_literal_expr_info
  198. | ObjCEncodeExpr of stmt_info * stmt list * expr_info * objc_encode_expr_info
  199. | ObjCIndirectCopyRestoreExpr of stmt_info * stmt list * expr_info
  200. | ObjCIsaExpr of stmt_info * stmt list * expr_info
  201. | ObjCIvarRefExpr of stmt_info * stmt list * expr_info * obj_c_ivar_ref_expr_info
  202. | ObjCMessageExpr of stmt_info * stmt list * expr_info * obj_c_message_expr_info
  203. | ObjCPropertyRefExpr of stmt_info * stmt list * expr_info * obj_c_property_ref_expr_info
  204. | ObjCProtocolExpr of stmt_info * stmt list * expr_info * decl_ref
  205. | ObjCSelectorExpr of stmt_info * stmt list * expr_info * selector
  206. | ObjCStringLiteral of stmt_info * stmt list * expr_info
  207. | ObjCSubscriptRefExpr of stmt_info * stmt list * expr_info * obj_c_subscript_ref_expr_info
  208. | OffsetOfExpr of stmt_info * stmt list * expr_info * offset_of_expr_info
  209. | OpaqueValueExpr of stmt_info * stmt list * expr_info * opaque_value_expr_info
  210. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info * unresolved_lookup_expr_info
  211. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
  212. | PackExpansionExpr of stmt_info * stmt list * expr_info
  213. | ParenExpr of stmt_info * stmt list * expr_info
  214. | ParenListExpr of stmt_info * stmt list * expr_info
  215. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
  216. | PseudoObjectExpr of stmt_info * stmt list * expr_info
  217. | RecoveryExpr of stmt_info * stmt list * expr_info
  218. | RequiresExpr of stmt_info * stmt list * expr_info
  219. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
  220. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
  221. | SizeOfPackExpr of stmt_info * stmt list * expr_info
  222. | SourceLocExpr of stmt_info * stmt list * expr_info
  223. | StmtExpr of stmt_info * stmt list * expr_info
  224. | StringLiteral of stmt_info * stmt list * expr_info * string list
  225. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
  226. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
  227. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
  228. | TypoExpr of stmt_info * stmt list * expr_info
  229. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info * unary_expr_or_type_trait_expr_info
  230. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
  231. | VAArgExpr of stmt_info * stmt list * expr_info
  232. | LabelStmt of stmt_info * stmt list * string
  233. | WhileStmt of stmt_info * stmt list
and switch_stmt_info = {
  1. ssi_init : pointer option;
  2. ssi_cond_var : stmt option;
  3. ssi_cond : pointer;
  4. ssi_body : pointer;
  5. ssi_is_all_enum_cases_covered : bool;
}
and template_decl_info = {
  1. tdi_specializations : decl list;
}
and var_decl_info = {
  1. vdi_is_global : bool;
  2. vdi_is_extern : bool;
  3. vdi_is_static : bool;
  4. vdi_is_static_local : bool;
  5. vdi_is_static_data_member : bool;
  6. vdi_is_constexpr : bool;
  7. vdi_is_init_ice : bool;
  8. vdi_init_expr : stmt option;
  9. vdi_is_init_expr_cxx11_constant : bool;
  10. vdi_parm_index_in_function : int option;
}
type lookup = {
  1. lup_decl_name : string;
  2. lup_decl_refs : decl_ref list;
}
type lookups = {
  1. lups_decl_ref : decl_ref;
  2. lups_primary_context_pointer : pointer option;
  3. lups_lookups : lookup list;
  4. lups_has_undeserialized_decls : bool;
}