Module ATDGenerated.Clang_ast_t

type access_specifier = [
  1. | `None
  2. | `Public
  3. | `Protected
  4. | `Private
]
type atomic_expr_kind = [
  1. | `AO__atomic_add_fetch
  2. | `AO__atomic_and_fetch
  3. | `AO__atomic_compare_exchange
  4. | `AO__atomic_compare_exchange_n
  5. | `AO__atomic_exchange
  6. | `AO__atomic_exchange_n
  7. | `AO__atomic_fetch_add
  8. | `AO__atomic_fetch_and
  9. | `AO__atomic_fetch_max
  10. | `AO__atomic_fetch_min
  11. | `AO__atomic_fetch_nand
  12. | `AO__atomic_fetch_or
  13. | `AO__atomic_fetch_sub
  14. | `AO__atomic_fetch_xor
  15. | `AO__atomic_load
  16. | `AO__atomic_load_n
  17. | `AO__atomic_max_fetch
  18. | `AO__atomic_min_fetch
  19. | `AO__atomic_nand_fetch
  20. | `AO__atomic_or_fetch
  21. | `AO__atomic_store
  22. | `AO__atomic_store_n
  23. | `AO__atomic_sub_fetch
  24. | `AO__atomic_xor_fetch
  25. | `AO__c11_atomic_compare_exchange_strong
  26. | `AO__c11_atomic_compare_exchange_weak
  27. | `AO__c11_atomic_exchange
  28. | `AO__c11_atomic_fetch_add
  29. | `AO__c11_atomic_fetch_and
  30. | `AO__c11_atomic_fetch_max
  31. | `AO__c11_atomic_fetch_min
  32. | `AO__c11_atomic_fetch_nand
  33. | `AO__c11_atomic_fetch_or
  34. | `AO__c11_atomic_fetch_sub
  35. | `AO__c11_atomic_fetch_xor
  36. | `AO__c11_atomic_init
  37. | `AO__c11_atomic_load
  38. | `AO__c11_atomic_store
  39. | `AO__hip_atomic_compare_exchange_strong
  40. | `AO__hip_atomic_compare_exchange_weak
  41. | `AO__hip_atomic_exchange
  42. | `AO__hip_atomic_fetch_add
  43. | `AO__hip_atomic_fetch_and
  44. | `AO__hip_atomic_fetch_max
  45. | `AO__hip_atomic_fetch_min
  46. | `AO__hip_atomic_fetch_or
  47. | `AO__hip_atomic_fetch_sub
  48. | `AO__hip_atomic_fetch_xor
  49. | `AO__hip_atomic_load
  50. | `AO__hip_atomic_store
  51. | `AO__opencl_atomic_compare_exchange_strong
  52. | `AO__opencl_atomic_compare_exchange_weak
  53. | `AO__opencl_atomic_exchange
  54. | `AO__opencl_atomic_fetch_add
  55. | `AO__opencl_atomic_fetch_and
  56. | `AO__opencl_atomic_fetch_max
  57. | `AO__opencl_atomic_fetch_min
  58. | `AO__opencl_atomic_fetch_or
  59. | `AO__opencl_atomic_fetch_sub
  60. | `AO__opencl_atomic_fetch_xor
  61. | `AO__opencl_atomic_init
  62. | `AO__opencl_atomic_load
  63. | `AO__opencl_atomic_store
  64. | `AO__scoped_atomic_add_fetch
  65. | `AO__scoped_atomic_and_fetch
  66. | `AO__scoped_atomic_compare_exchange
  67. | `AO__scoped_atomic_compare_exchange_n
  68. | `AO__scoped_atomic_exchange
  69. | `AO__scoped_atomic_exchange_n
  70. | `AO__scoped_atomic_fetch_add
  71. | `AO__scoped_atomic_fetch_and
  72. | `AO__scoped_atomic_fetch_max
  73. | `AO__scoped_atomic_fetch_min
  74. | `AO__scoped_atomic_fetch_nand
  75. | `AO__scoped_atomic_fetch_or
  76. | `AO__scoped_atomic_fetch_sub
  77. | `AO__scoped_atomic_fetch_xor
  78. | `AO__scoped_atomic_load
  79. | `AO__scoped_atomic_load_n
  80. | `AO__scoped_atomic_max_fetch
  81. | `AO__scoped_atomic_min_fetch
  82. | `AO__scoped_atomic_nand_fetch
  83. | `AO__scoped_atomic_or_fetch
  84. | `AO__scoped_atomic_store
  85. | `AO__scoped_atomic_store_n
  86. | `AO__scoped_atomic_sub_fetch
  87. | `AO__scoped_atomic_xor_fetch
]
type atomic_expr_info = {
  1. aei_kind : atomic_expr_kind;
}
type attribute_kind =
  1. | AddressSpaceAttrKind
  2. | AllocatingAttrKind
  3. | AnnotateTypeAttrKind
  4. | ArmInAttrKind
  5. | ArmInOutAttrKind
  6. | ArmMveStrictPolymorphismAttrKind
  7. | ArmOutAttrKind
  8. | ArmPreservesAttrKind
  9. | ArmStreamingAttrKind
  10. | ArmStreamingCompatibleAttrKind
  11. | BTFTypeTagAttrKind
  12. | BlockingAttrKind
  13. | CmseNSCallAttrKind
  14. | HLSLGroupSharedAddressSpaceAttrKind
  15. | HLSLParamModifierAttrKind
  16. | NoDerefAttrKind
  17. | NonAllocatingAttrKind
  18. | NonBlockingAttrKind
  19. | ObjCGCAttrKind
  20. | ObjCInertUnsafeUnretainedAttrKind
  21. | ObjCKindOfAttrKind
  22. | OpenCLConstantAddressSpaceAttrKind
  23. | OpenCLGenericAddressSpaceAttrKind
  24. | OpenCLGlobalAddressSpaceAttrKind
  25. | OpenCLGlobalDeviceAddressSpaceAttrKind
  26. | OpenCLGlobalHostAddressSpaceAttrKind
  27. | OpenCLLocalAddressSpaceAttrKind
  28. | OpenCLPrivateAddressSpaceAttrKind
  29. | Ptr32AttrKind
  30. | Ptr64AttrKind
  31. | SPtrAttrKind
  32. | TypeNonNullAttrKind
  33. | TypeNullUnspecifiedAttrKind
  34. | TypeNullableResultAttrKind
  35. | UPtrAttrKind
  36. | WebAssemblyFuncrefAttrKind
  37. | CXXAssumeAttrKind
  38. | CodeAlignAttrKind
  39. | FallThroughAttrKind
  40. | HLSLLoopHintAttrKind
  41. | LikelyAttrKind
  42. | MustTailAttrKind
  43. | OpenCLUnrollHintAttrKind
  44. | UnlikelyAttrKind
  45. | AlwaysInlineAttrKind
  46. | NoInlineAttrKind
  47. | NoMergeAttrKind
  48. | SuppressAttrKind
  49. | AArch64SVEPcsAttrKind
  50. | AArch64VectorPcsAttrKind
  51. | AMDGPUKernelCallAttrKind
  52. | AcquireHandleAttrKind
  53. | AnyX86NoCfCheckAttrKind
  54. | CDeclAttrKind
  55. | CountedByAttrKind
  56. | CountedByOrNullAttrKind
  57. | FastCallAttrKind
  58. | IntelOclBiccAttrKind
  59. | LifetimeBoundAttrKind
  60. | M68kRTDAttrKind
  61. | MSABIAttrKind
  62. | NSReturnsRetainedAttrKind
  63. | ObjCOwnershipAttrKind
  64. | PascalAttrKind
  65. | PcsAttrKind
  66. | PreserveAllAttrKind
  67. | PreserveMostAttrKind
  68. | PreserveNoneAttrKind
  69. | RISCVVectorCCAttrKind
  70. | RegCallAttrKind
  71. | SizedByAttrKind
  72. | SizedByOrNullAttrKind
  73. | StdCallAttrKind
  74. | SwiftAsyncCallAttrKind
  75. | SwiftCallAttrKind
  76. | SysVABIAttrKind
  77. | ThisCallAttrKind
  78. | TypeNullableAttrKind
  79. | VectorCallAttrKind
  80. | SwiftAsyncContextAttrKind
  81. | SwiftContextAttrKind
  82. | SwiftErrorResultAttrKind
  83. | SwiftIndirectResultAttrKind
  84. | AnnotateAttrKind
  85. | CFConsumedAttrKind
  86. | CarriesDependencyAttrKind
  87. | NSConsumedAttrKind
  88. | NonNullAttrKind
  89. | OSConsumedAttrKind
  90. | PassObjectSizeAttrKind
  91. | ReleaseHandleAttrKind
  92. | UseHandleAttrKind
  93. | HLSLPackOffsetAttrKind
  94. | HLSLSV_DispatchThreadIDAttrKind
  95. | HLSLSV_GroupIndexAttrKind
  96. | AMDGPUFlatWorkGroupSizeAttrKind
  97. | AMDGPUMaxNumWorkGroupsAttrKind
  98. | AMDGPUNumSGPRAttrKind
  99. | AMDGPUNumVGPRAttrKind
  100. | AMDGPUWavesPerEUAttrKind
  101. | ARMInterruptAttrKind
  102. | AVRInterruptAttrKind
  103. | AVRSignalAttrKind
  104. | AcquireCapabilityAttrKind
  105. | AcquiredAfterAttrKind
  106. | AcquiredBeforeAttrKind
  107. | AlignMac68kAttrKind
  108. | AlignNaturalAttrKind
  109. | AlignedAttrKind
  110. | AllocAlignAttrKind
  111. | AllocSizeAttrKind
  112. | AlwaysDestroyAttrKind
  113. | AnalyzerNoReturnAttrKind
  114. | AnyX86InterruptAttrKind
  115. | AnyX86NoCallerSavedRegistersAttrKind
  116. | ArcWeakrefUnavailableAttrKind
  117. | ArgumentWithTypeTagAttrKind
  118. | ArmBuiltinAliasAttrKind
  119. | ArmLocallyStreamingAttrKind
  120. | ArmNewAttrKind
  121. | ArtificialAttrKind
  122. | AsmLabelAttrKind
  123. | AssertCapabilityAttrKind
  124. | AssertExclusiveLockAttrKind
  125. | AssertSharedLockAttrKind
  126. | AssumeAlignedAttrKind
  127. | AvailabilityAttrKind
  128. | AvailableOnlyInDefaultEvalMethodAttrKind
  129. | BPFPreserveAccessIndexAttrKind
  130. | BPFPreserveStaticOffsetAttrKind
  131. | BTFDeclTagAttrKind
  132. | BlocksAttrKind
  133. | BuiltinAttrKind
  134. | C11NoReturnAttrKind
  135. | CFAuditedTransferAttrKind
  136. | CFGuardAttrKind
  137. | CFICanonicalJumpTableAttrKind
  138. | CFReturnsNotRetainedAttrKind
  139. | CFReturnsRetainedAttrKind
  140. | CFUnknownTransferAttrKind
  141. | CPUDispatchAttrKind
  142. | CPUSpecificAttrKind
  143. | CUDAConstantAttrKind
  144. | CUDADeviceAttrKind
  145. | CUDADeviceBuiltinSurfaceTypeAttrKind
  146. | CUDADeviceBuiltinTextureTypeAttrKind
  147. | CUDAGlobalAttrKind
  148. | CUDAHostAttrKind
  149. | CUDAInvalidTargetAttrKind
  150. | CUDALaunchBoundsAttrKind
  151. | CUDASharedAttrKind
  152. | CXX11NoReturnAttrKind
  153. | CallableWhenAttrKind
  154. | CallbackAttrKind
  155. | CapabilityAttrKind
  156. | CapturedRecordAttrKind
  157. | CleanupAttrKind
  158. | ClspvLibclcBuiltinAttrKind
  159. | CmseNSEntryAttrKind
  160. | CodeModelAttrKind
  161. | CodeSegAttrKind
  162. | ColdAttrKind
  163. | CommonAttrKind
  164. | ConstAttrKind
  165. | ConstInitAttrKind
  166. | ConstructorAttrKind
  167. | ConsumableAttrKind
  168. | ConsumableAutoCastAttrKind
  169. | ConsumableSetOnReadAttrKind
  170. | ConvergentAttrKind
  171. | CoroDisableLifetimeBoundAttrKind
  172. | CoroLifetimeBoundAttrKind
  173. | CoroOnlyDestroyWhenCompleteAttrKind
  174. | CoroReturnTypeAttrKind
  175. | CoroWrapperAttrKind
  176. | DLLExportAttrKind
  177. | DLLExportStaticLocalAttrKind
  178. | DLLImportAttrKind
  179. | DLLImportStaticLocalAttrKind
  180. | DeprecatedAttrKind
  181. | DestructorAttrKind
  182. | DiagnoseAsBuiltinAttrKind
  183. | DiagnoseIfAttrKind
  184. | DisableSanitizerInstrumentationAttrKind
  185. | DisableTailCallsAttrKind
  186. | EmptyBasesAttrKind
  187. | EnableIfAttrKind
  188. | EnforceTCBAttrKind
  189. | EnforceTCBLeafAttrKind
  190. | EnumExtensibilityAttrKind
  191. | ErrorAttrKind
  192. | ExcludeFromExplicitInstantiationAttrKind
  193. | ExclusiveTrylockFunctionAttrKind
  194. | ExternalSourceSymbolAttrKind
  195. | FinalAttrKind
  196. | FlagEnumAttrKind
  197. | FlattenAttrKind
  198. | FormatAttrKind
  199. | FormatArgAttrKind
  200. | FunctionReturnThunksAttrKind
  201. | GNUInlineAttrKind
  202. | GuardedByAttrKind
  203. | GuardedVarAttrKind
  204. | HIPManagedAttrKind
  205. | HLSLNumThreadsAttrKind
  206. | HLSLResourceAttrKind
  207. | HLSLResourceBindingAttrKind
  208. | HLSLResourceClassAttrKind
  209. | HLSLShaderAttrKind
  210. | HotAttrKind
  211. | HybridPatchableAttrKind
  212. | IBActionAttrKind
  213. | IBOutletAttrKind
  214. | IBOutletCollectionAttrKind
  215. | InitPriorityAttrKind
  216. | InternalLinkageAttrKind
  217. | LTOVisibilityPublicAttrKind
  218. | LayoutVersionAttrKind
  219. | LeafAttrKind
  220. | LockReturnedAttrKind
  221. | LocksExcludedAttrKind
  222. | M68kInterruptAttrKind
  223. | MIGServerRoutineAttrKind
  224. | MSAllocatorAttrKind
  225. | MSConstexprAttrKind
  226. | MSInheritanceAttrKind
  227. | MSNoVTableAttrKind
  228. | MSP430InterruptAttrKind
  229. | MSStructAttrKind
  230. | MSVtorDispAttrKind
  231. | MaxFieldAlignmentAttrKind
  232. | MayAliasAttrKind
  233. | MaybeUndefAttrKind
  234. | MicroMipsAttrKind
  235. | MinSizeAttrKind
  236. | MinVectorWidthAttrKind
  237. | Mips16AttrKind
  238. | MipsInterruptAttrKind
  239. | MipsLongCallAttrKind
  240. | MipsShortCallAttrKind
  241. | NSConsumesSelfAttrKind
  242. | NSErrorDomainAttrKind
  243. | NSReturnsAutoreleasedAttrKind
  244. | NSReturnsNotRetainedAttrKind
  245. | NVPTXKernelAttrKind
  246. | NakedAttrKind
  247. | NoAliasAttrKind
  248. | NoCommonAttrKind
  249. | NoDebugAttrKind
  250. | NoDestroyAttrKind
  251. | NoDuplicateAttrKind
  252. | NoInstrumentFunctionAttrKind
  253. | NoMicroMipsAttrKind
  254. | NoMips16AttrKind
  255. | NoProfileFunctionAttrKind
  256. | NoRandomizeLayoutAttrKind
  257. | NoReturnAttrKind
  258. | NoSanitizeAttrKind
  259. | NoSpeculativeLoadHardeningAttrKind
  260. | NoSplitStackAttrKind
  261. | NoStackProtectorAttrKind
  262. | NoThreadSafetyAnalysisAttrKind
  263. | NoThrowAttrKind
  264. | NoUniqueAddressAttrKind
  265. | NoUwtableAttrKind
  266. | NotTailCalledAttrKind
  267. | OMPAllocateDeclAttrKind
  268. | OMPAssumeAttrKind
  269. | OMPCaptureNoInitAttrKind
  270. | OMPDeclareTargetDeclAttrKind
  271. | OMPDeclareVariantAttrKind
  272. | OMPThreadPrivateDeclAttrKind
  273. | OSConsumesThisAttrKind
  274. | OSReturnsNotRetainedAttrKind
  275. | OSReturnsRetainedAttrKind
  276. | OSReturnsRetainedOnNonZeroAttrKind
  277. | OSReturnsRetainedOnZeroAttrKind
  278. | ObjCBridgeAttrKind
  279. | ObjCBridgeMutableAttrKind
  280. | ObjCBridgeRelatedAttrKind
  281. | ObjCExceptionAttrKind
  282. | ObjCExplicitProtocolImplAttrKind
  283. | ObjCExternallyRetainedAttrKind
  284. | ObjCIndependentClassAttrKind
  285. | ObjCMethodFamilyAttrKind
  286. | ObjCNSObjectAttrKind
  287. | ObjCPreciseLifetimeAttrKind
  288. | ObjCRequiresPropertyDefsAttrKind
  289. | ObjCRequiresSuperAttrKind
  290. | ObjCReturnsInnerPointerAttrKind
  291. | ObjCRootClassAttrKind
  292. | ObjCSubclassingRestrictedAttrKind
  293. | OpenCLIntelReqdSubGroupSizeAttrKind
  294. | OpenCLKernelAttrKind
  295. | OptimizeNoneAttrKind
  296. | OverrideAttrKind
  297. | OwnerAttrKind
  298. | OwnershipAttrKind
  299. | PackedAttrKind
  300. | ParamTypestateAttrKind
  301. | PatchableFunctionEntryAttrKind
  302. | PointerAttrKind
  303. | PragmaClangBSSSectionAttrKind
  304. | PragmaClangDataSectionAttrKind
  305. | PragmaClangRelroSectionAttrKind
  306. | PragmaClangRodataSectionAttrKind
  307. | PragmaClangTextSectionAttrKind
  308. | PreferredNameAttrKind
  309. | PreferredTypeAttrKind
  310. | PtGuardedByAttrKind
  311. | PtGuardedVarAttrKind
  312. | PureAttrKind
  313. | RISCVInterruptAttrKind
  314. | RandomizeLayoutAttrKind
  315. | ReadOnlyPlacementAttrKind
  316. | ReinitializesAttrKind
  317. | ReleaseCapabilityAttrKind
  318. | ReqdWorkGroupSizeAttrKind
  319. | RequiresCapabilityAttrKind
  320. | RestrictAttrKind
  321. | RetainAttrKind
  322. | ReturnTypestateAttrKind
  323. | ReturnsNonNullAttrKind
  324. | ReturnsTwiceAttrKind
  325. | SYCLKernelAttrKind
  326. | SYCLSpecialClassAttrKind
  327. | ScopedLockableAttrKind
  328. | SectionAttrKind
  329. | SelectAnyAttrKind
  330. | SentinelAttrKind
  331. | SetTypestateAttrKind
  332. | SharedTrylockFunctionAttrKind
  333. | SpeculativeLoadHardeningAttrKind
  334. | StandaloneDebugAttrKind
  335. | StrictFPAttrKind
  336. | StrictGuardStackCheckAttrKind
  337. | SwiftAsyncAttrKind
  338. | SwiftAsyncErrorAttrKind
  339. | SwiftAsyncNameAttrKind
  340. | SwiftAttrAttrKind
  341. | SwiftBridgeAttrKind
  342. | SwiftBridgedTypedefAttrKind
  343. | SwiftErrorAttrKind
  344. | SwiftImportAsNonGenericAttrKind
  345. | SwiftImportPropertyAsAccessorsAttrKind
  346. | SwiftNameAttrKind
  347. | SwiftNewTypeAttrKind
  348. | SwiftPrivateAttrKind
  349. | TLSModelAttrKind
  350. | TargetAttrKind
  351. | TargetClonesAttrKind
  352. | TargetVersionAttrKind
  353. | TestTypestateAttrKind
  354. | TransparentUnionAttrKind
  355. | TrivialABIAttrKind
  356. | TryAcquireCapabilityAttrKind
  357. | TypeTagForDatatypeAttrKind
  358. | TypeVisibilityAttrKind
  359. | UnavailableAttrKind
  360. | UninitializedAttrKind
  361. | UnsafeBufferUsageAttrKind
  362. | UnusedAttrKind
  363. | UsedAttrKind
  364. | UsingIfExistsAttrKind
  365. | UuidAttrKind
  366. | VTablePointerAuthenticationAttrKind
  367. | VecReturnAttrKind
  368. | VecTypeHintAttrKind
  369. | VisibilityAttrKind
  370. | WarnUnusedAttrKind
  371. | WarnUnusedResultAttrKind
  372. | WeakAttrKind
  373. | WeakImportAttrKind
  374. | WeakRefAttrKind
  375. | WebAssemblyExportNameAttrKind
  376. | WebAssemblyImportModuleAttrKind
  377. | WebAssemblyImportNameAttrKind
  378. | WorkGroupSizeHintAttrKind
  379. | X86ForceAlignArgPointerAttrKind
  380. | XRayInstrumentAttrKind
  381. | XRayLogArgsAttrKind
  382. | ZeroCallUsedRegsAttrKind
  383. | AbiTagAttrKind
  384. | AliasAttrKind
  385. | AlignValueAttrKind
  386. | BuiltinAliasAttrKind
  387. | CalledOnceAttrKind
  388. | IFuncAttrKind
  389. | InitSegAttrKind
  390. | LoaderUninitializedAttrKind
  391. | LoopHintAttrKind
  392. | ModeAttrKind
  393. | NoBuiltinAttrKind
  394. | NoEscapeAttrKind
  395. | OMPCaptureKindAttrKind
  396. | OMPDeclareSimdDeclAttrKind
  397. | OMPReferencedVarAttrKind
  398. | ObjCBoxableAttrKind
  399. | ObjCClassStubAttrKind
  400. | ObjCDesignatedInitializerAttrKind
  401. | ObjCDirectAttrKind
  402. | ObjCDirectMembersAttrKind
  403. | ObjCNonLazyClassAttrKind
  404. | ObjCNonRuntimeProtocolAttrKind
  405. | ObjCRuntimeNameAttrKind
  406. | ObjCRuntimeVisibleAttrKind
  407. | OpenCLAccessAttrKind
  408. | OverloadableAttrKind
  409. | RenderScriptKernelAttrKind
  410. | SwiftObjCMembersAttrKind
  411. | SwiftVersionedAdditionAttrKind
  412. | SwiftVersionedRemovalAttrKind
  413. | 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. | `UnresolvedTemplate
  67. | `PseudoObject
  68. | `UnknownAny
  69. | `BuiltinFn
  70. | `ARCUnbridgedCast
  71. | `IncompleteMatrixIdx
  72. | `ArraySection
  73. | `OMPArrayShaping
  74. | `OMPIterator
  75. | `SveInt8
  76. | `SveInt16
  77. | `SveInt32
  78. | `SveInt64
  79. | `SveUint8
  80. | `SveUint16
  81. | `SveUint32
  82. | `SveUint64
  83. | `SveFloat16
  84. | `SveFloat32
  85. | `SveFloat64
  86. | `SveBFloat16
  87. | `SveInt8x2
  88. | `SveInt16x2
  89. | `SveInt32x2
  90. | `SveInt64x2
  91. | `SveUint8x2
  92. | `SveUint16x2
  93. | `SveUint32x2
  94. | `SveUint64x2
  95. | `SveFloat16x2
  96. | `SveFloat32x2
  97. | `SveFloat64x2
  98. | `SveBFloat16x2
  99. | `SveInt8x3
  100. | `SveInt16x3
  101. | `SveInt32x3
  102. | `SveInt64x3
  103. | `SveUint8x3
  104. | `SveUint16x3
  105. | `SveUint32x3
  106. | `SveUint64x3
  107. | `SveFloat16x3
  108. | `SveFloat32x3
  109. | `SveFloat64x3
  110. | `SveBFloat16x3
  111. | `SveInt8x4
  112. | `SveInt16x4
  113. | `SveInt32x4
  114. | `SveInt64x4
  115. | `SveUint8x4
  116. | `SveUint16x4
  117. | `SveUint32x4
  118. | `SveUint64x4
  119. | `SveFloat16x4
  120. | `SveFloat32x4
  121. | `SveFloat64x4
  122. | `SveBFloat16x4
  123. | `SveBool
  124. | `SveBoolx2
  125. | `SveBoolx4
  126. | `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
  66. | `HLSLVectorTruncation
  67. | `HLSLArrayRValue
]
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. | `TranslationUnit
  2. | `TopLevelStmt
  3. | `RequiresExprBody
  4. | `LinkageSpec
  5. | `ExternCContext
  6. | `Export
  7. | `Captured
  8. | `Block
  9. | `StaticAssert
  10. | `PragmaDetectMismatch
  11. | `PragmaComment
  12. | `ObjCPropertyImpl
  13. | `OMPThreadPrivate
  14. | `OMPRequires
  15. | `OMPAllocate
  16. | `Named
  17. | `ObjCMethod
  18. | `ObjCContainer
  19. | `ObjCProtocol
  20. | `ObjCInterface
  21. | `ObjCImpl
  22. | `ObjCImplementation
  23. | `ObjCCategoryImpl
  24. | `ObjCCategory
  25. | `Namespace
  26. | `HLSLBuffer
  27. | `Value
  28. | `OMPDeclareReduction
  29. | `OMPDeclareMapper
  30. | `UnresolvedUsingValue
  31. | `UnnamedGlobalConstant
  32. | `TemplateParamObject
  33. | `MSGuid
  34. | `IndirectField
  35. | `EnumConstant
  36. | `Declarator
  37. | `Function
  38. | `CXXMethod
  39. | `CXXDestructor
  40. | `CXXConversion
  41. | `CXXConstructor
  42. | `CXXDeductionGuide
  43. | `Var
  44. | `VarTemplateSpecialization
  45. | `VarTemplatePartialSpecialization
  46. | `ParmVar
  47. | `OMPCapturedExpr
  48. | `ImplicitParam
  49. | `Decomposition
  50. | `NonTypeTemplateParm
  51. | `MSProperty
  52. | `Field
  53. | `ObjCIvar
  54. | `ObjCAtDefsField
  55. | `Binding
  56. | `UsingShadow
  57. | `ConstructorUsingShadow
  58. | `UsingPack
  59. | `UsingDirective
  60. | `UnresolvedUsingIfExists
  61. | `Type
  62. | `Tag
  63. | `Record
  64. | `CXXRecord
  65. | `ClassTemplateSpecialization
  66. | `ClassTemplatePartialSpecialization
  67. | `Enum
  68. | `UnresolvedUsingTypename
  69. | `TypedefName
  70. | `Typedef
  71. | `TypeAlias
  72. | `ObjCTypeParam
  73. | `TemplateTypeParm
  74. | `Template
  75. | `TemplateTemplateParm
  76. | `RedeclarableTemplate
  77. | `VarTemplate
  78. | `TypeAliasTemplate
  79. | `FunctionTemplate
  80. | `ClassTemplate
  81. | `Concept
  82. | `BuiltinTemplate
  83. | `ObjCProperty
  84. | `ObjCCompatibleAlias
  85. | `NamespaceAlias
  86. | `Label
  87. | `BaseUsing
  88. | `UsingEnum
  89. | `Using
  90. | `LifetimeExtendedTemporary
  91. | `Import
  92. | `ImplicitConceptSpecialization
  93. | `FriendTemplate
  94. | `Friend
  95. | `FileScopeAsm
  96. | `Empty
  97. | `AccessSpec
]
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 namespace_decl_info = {
  1. ndi_is_inline : bool;
}
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;
}
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 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. | ArrayParameterType of type_info * array_type_info * int
  6. | DependentSizedArrayType of type_info * array_type_info
  7. | IncompleteArrayType of type_info * array_type_info
  8. | VariableArrayType of type_info * array_type_info * pointer
  9. | AtomicType of type_info * qual_type
  10. | AttributedType of type_info * attr_type_info
  11. | BTFTagAttributedType of type_info
  12. | BitIntType of type_info
  13. | BlockPointerType of type_info * qual_type
  14. | CountAttributedType of type_info
  15. | BuiltinType of type_info * builtin_type_kind
  16. | ComplexType of type_info
  17. | DecltypeType of type_info * qual_type
  18. | AutoType of type_info
  19. | DeducedTemplateSpecializationType of type_info
  20. | DependentAddressSpaceType of type_info
  21. | DependentBitIntType of type_info
  22. | DependentNameType of type_info
  23. | DependentSizedExtVectorType of type_info
  24. | DependentTemplateSpecializationType of type_info
  25. | DependentVectorType of type_info
  26. | ElaboratedType of type_info
  27. | FunctionNoProtoType of type_info * function_type_info
  28. | FunctionProtoType of type_info * function_type_info * params_type_info
  29. | InjectedClassNameType of type_info
  30. | MacroQualifiedType of type_info
  31. | ConstantMatrixType of type_info
  32. | DependentSizedMatrixType of type_info
  33. | MemberPointerType of type_info * qual_type
  34. | ObjCObjectPointerType of type_info * qual_type
  35. | ObjCObjectType of type_info * objc_object_type_info
  36. | ObjCInterfaceType of type_info * pointer
  37. | ObjCTypeParamType of type_info
  38. | PackExpansionType of type_info
  39. | PackIndexingType of type_info
  40. | ParenType of type_info * qual_type
  41. | PipeType of type_info
  42. | PointerType of type_info * qual_type
  43. | LValueReferenceType of type_info * qual_type
  44. | RValueReferenceType of type_info * qual_type
  45. | SubstTemplateTypeParmPackType of type_info
  46. | SubstTemplateTypeParmType of type_info
  47. | EnumType of type_info * pointer
  48. | RecordType of type_info * pointer
  49. | TemplateSpecializationType of type_info
  50. | TemplateTypeParmType of type_info
  51. | TypeOfExprType of type_info
  52. | TypeOfType of type_info
  53. | TypedefType of type_info * typedef_type_info
  54. | UnaryTransformType of type_info
  55. | UnresolvedUsingType of type_info
  56. | UsingType of type_info
  57. | VectorType of type_info
  58. | 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
  7. | `VectorElements
]
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_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. | `AllocatingAttr of attribute_info
  3. | `AnnotateTypeAttr of attribute_info
  4. | `ArmInAttr of attribute_info
  5. | `ArmInOutAttr of attribute_info
  6. | `ArmMveStrictPolymorphismAttr of attribute_info
  7. | `ArmOutAttr of attribute_info
  8. | `ArmPreservesAttr of attribute_info
  9. | `ArmStreamingAttr of attribute_info
  10. | `ArmStreamingCompatibleAttr of attribute_info
  11. | `BTFTypeTagAttr of attribute_info
  12. | `BlockingAttr of attribute_info
  13. | `CmseNSCallAttr of attribute_info
  14. | `HLSLGroupSharedAddressSpaceAttr of attribute_info
  15. | `HLSLParamModifierAttr of attribute_info
  16. | `NoDerefAttr of attribute_info
  17. | `NonAllocatingAttr of attribute_info
  18. | `NonBlockingAttr of attribute_info
  19. | `ObjCGCAttr of attribute_info
  20. | `ObjCInertUnsafeUnretainedAttr of attribute_info
  21. | `ObjCKindOfAttr of attribute_info
  22. | `OpenCLConstantAddressSpaceAttr of attribute_info
  23. | `OpenCLGenericAddressSpaceAttr of attribute_info
  24. | `OpenCLGlobalAddressSpaceAttr of attribute_info
  25. | `OpenCLGlobalDeviceAddressSpaceAttr of attribute_info
  26. | `OpenCLGlobalHostAddressSpaceAttr of attribute_info
  27. | `OpenCLLocalAddressSpaceAttr of attribute_info
  28. | `OpenCLPrivateAddressSpaceAttr of attribute_info
  29. | `Ptr32Attr of attribute_info
  30. | `Ptr64Attr of attribute_info
  31. | `SPtrAttr of attribute_info
  32. | `TypeNonNullAttr of attribute_info
  33. | `TypeNullUnspecifiedAttr of attribute_info
  34. | `TypeNullableResultAttr of attribute_info
  35. | `UPtrAttr of attribute_info
  36. | `WebAssemblyFuncrefAttr of attribute_info
  37. | `CXXAssumeAttr of attribute_info
  38. | `CodeAlignAttr of attribute_info
  39. | `FallThroughAttr of attribute_info
  40. | `HLSLLoopHintAttr of attribute_info
  41. | `LikelyAttr of attribute_info
  42. | `MustTailAttr of attribute_info
  43. | `OpenCLUnrollHintAttr of attribute_info
  44. | `UnlikelyAttr of attribute_info
  45. | `AlwaysInlineAttr of attribute_info
  46. | `NoInlineAttr of attribute_info
  47. | `NoMergeAttr of attribute_info
  48. | `SuppressAttr of attribute_info
  49. | `AArch64SVEPcsAttr of attribute_info
  50. | `AArch64VectorPcsAttr of attribute_info
  51. | `AMDGPUKernelCallAttr of attribute_info
  52. | `AcquireHandleAttr of attribute_info
  53. | `AnyX86NoCfCheckAttr of attribute_info
  54. | `CDeclAttr of attribute_info
  55. | `CountedByAttr of attribute_info
  56. | `CountedByOrNullAttr of attribute_info
  57. | `FastCallAttr of attribute_info
  58. | `IntelOclBiccAttr of attribute_info
  59. | `LifetimeBoundAttr of attribute_info
  60. | `M68kRTDAttr of attribute_info
  61. | `MSABIAttr of attribute_info
  62. | `NSReturnsRetainedAttr of attribute_info
  63. | `ObjCOwnershipAttr of attribute_info
  64. | `PascalAttr of attribute_info
  65. | `PcsAttr of attribute_info
  66. | `PreserveAllAttr of attribute_info
  67. | `PreserveMostAttr of attribute_info
  68. | `PreserveNoneAttr of attribute_info
  69. | `RISCVVectorCCAttr of attribute_info
  70. | `RegCallAttr of attribute_info
  71. | `SizedByAttr of attribute_info
  72. | `SizedByOrNullAttr of attribute_info
  73. | `StdCallAttr of attribute_info
  74. | `SwiftAsyncCallAttr of attribute_info
  75. | `SwiftCallAttr of attribute_info
  76. | `SysVABIAttr of attribute_info
  77. | `ThisCallAttr of attribute_info
  78. | `TypeNullableAttr of attribute_info
  79. | `VectorCallAttr of attribute_info
  80. | `SwiftAsyncContextAttr of attribute_info
  81. | `SwiftContextAttr of attribute_info
  82. | `SwiftErrorResultAttr of attribute_info
  83. | `SwiftIndirectResultAttr of attribute_info
  84. | `AnnotateAttr of attr_tuple * string
  85. | `CFConsumedAttr of attribute_info
  86. | `CarriesDependencyAttr of attribute_info
  87. | `NSConsumedAttr of attribute_info
  88. | `NonNullAttr of attribute_info
  89. | `OSConsumedAttr of attribute_info
  90. | `PassObjectSizeAttr of attribute_info
  91. | `ReleaseHandleAttr of attribute_info
  92. | `UseHandleAttr of attribute_info
  93. | `HLSLPackOffsetAttr of attribute_info
  94. | `HLSLSV_DispatchThreadIDAttr of attribute_info
  95. | `HLSLSV_GroupIndexAttr of attribute_info
  96. | `AMDGPUFlatWorkGroupSizeAttr of attribute_info
  97. | `AMDGPUMaxNumWorkGroupsAttr of attribute_info
  98. | `AMDGPUNumSGPRAttr of attribute_info
  99. | `AMDGPUNumVGPRAttr of attribute_info
  100. | `AMDGPUWavesPerEUAttr of attribute_info
  101. | `ARMInterruptAttr of attribute_info
  102. | `AVRInterruptAttr of attribute_info
  103. | `AVRSignalAttr of attribute_info
  104. | `AcquireCapabilityAttr of attribute_info
  105. | `AcquiredAfterAttr of attribute_info
  106. | `AcquiredBeforeAttr of attribute_info
  107. | `AlignMac68kAttr of attribute_info
  108. | `AlignNaturalAttr of attribute_info
  109. | `AlignedAttr of attribute_info
  110. | `AllocAlignAttr of attribute_info
  111. | `AllocSizeAttr of attribute_info
  112. | `AlwaysDestroyAttr of attribute_info
  113. | `AnalyzerNoReturnAttr of attribute_info
  114. | `AnyX86InterruptAttr of attribute_info
  115. | `AnyX86NoCallerSavedRegistersAttr of attribute_info
  116. | `ArcWeakrefUnavailableAttr of attribute_info
  117. | `ArgumentWithTypeTagAttr of attribute_info
  118. | `ArmBuiltinAliasAttr of attribute_info
  119. | `ArmLocallyStreamingAttr of attribute_info
  120. | `ArmNewAttr of attribute_info
  121. | `ArtificialAttr of attribute_info
  122. | `AsmLabelAttr of attribute_info
  123. | `AssertCapabilityAttr of attribute_info
  124. | `AssertExclusiveLockAttr of attribute_info
  125. | `AssertSharedLockAttr of attribute_info
  126. | `AssumeAlignedAttr of attribute_info
  127. | `AvailabilityAttr of attr_tuple * availability_attr_info
  128. | `AvailableOnlyInDefaultEvalMethodAttr of attribute_info
  129. | `BPFPreserveAccessIndexAttr of attribute_info
  130. | `BPFPreserveStaticOffsetAttr of attribute_info
  131. | `BTFDeclTagAttr of attribute_info
  132. | `BlocksAttr of attribute_info
  133. | `BuiltinAttr of attribute_info
  134. | `C11NoReturnAttr of attribute_info
  135. | `CFAuditedTransferAttr of attribute_info
  136. | `CFGuardAttr of attribute_info
  137. | `CFICanonicalJumpTableAttr of attribute_info
  138. | `CFReturnsNotRetainedAttr of attribute_info
  139. | `CFReturnsRetainedAttr of attribute_info
  140. | `CFUnknownTransferAttr of attribute_info
  141. | `CPUDispatchAttr of attribute_info
  142. | `CPUSpecificAttr of attribute_info
  143. | `CUDAConstantAttr of attribute_info
  144. | `CUDADeviceAttr of attribute_info
  145. | `CUDADeviceBuiltinSurfaceTypeAttr of attribute_info
  146. | `CUDADeviceBuiltinTextureTypeAttr of attribute_info
  147. | `CUDAGlobalAttr of attribute_info
  148. | `CUDAHostAttr of attribute_info
  149. | `CUDAInvalidTargetAttr of attribute_info
  150. | `CUDALaunchBoundsAttr of attribute_info
  151. | `CUDASharedAttr of attribute_info
  152. | `CXX11NoReturnAttr of attribute_info
  153. | `CallableWhenAttr of attribute_info
  154. | `CallbackAttr of attribute_info
  155. | `CapabilityAttr of attribute_info
  156. | `CapturedRecordAttr of attribute_info
  157. | `CleanupAttr of attribute_info
  158. | `ClspvLibclcBuiltinAttr of attribute_info
  159. | `CmseNSEntryAttr of attribute_info
  160. | `CodeModelAttr of attribute_info
  161. | `CodeSegAttr of attribute_info
  162. | `ColdAttr of attribute_info
  163. | `CommonAttr of attribute_info
  164. | `ConstAttr of attribute_info
  165. | `ConstInitAttr of attribute_info
  166. | `ConstructorAttr of attribute_info
  167. | `ConsumableAttr of attribute_info
  168. | `ConsumableAutoCastAttr of attribute_info
  169. | `ConsumableSetOnReadAttr of attribute_info
  170. | `ConvergentAttr of attribute_info
  171. | `CoroDisableLifetimeBoundAttr of attribute_info
  172. | `CoroLifetimeBoundAttr of attribute_info
  173. | `CoroOnlyDestroyWhenCompleteAttr of attribute_info
  174. | `CoroReturnTypeAttr of attribute_info
  175. | `CoroWrapperAttr of attribute_info
  176. | `DLLExportAttr of attribute_info
  177. | `DLLExportStaticLocalAttr of attribute_info
  178. | `DLLImportAttr of attribute_info
  179. | `DLLImportStaticLocalAttr of attribute_info
  180. | `DeprecatedAttr of attribute_info
  181. | `DestructorAttr of attribute_info
  182. | `DiagnoseAsBuiltinAttr of attribute_info
  183. | `DiagnoseIfAttr of attribute_info
  184. | `DisableSanitizerInstrumentationAttr of attribute_info
  185. | `DisableTailCallsAttr of attribute_info
  186. | `EmptyBasesAttr of attribute_info
  187. | `EnableIfAttr of attribute_info
  188. | `EnforceTCBAttr of attribute_info
  189. | `EnforceTCBLeafAttr of attribute_info
  190. | `EnumExtensibilityAttr of attribute_info
  191. | `ErrorAttr of attribute_info
  192. | `ExcludeFromExplicitInstantiationAttr of attribute_info
  193. | `ExclusiveTrylockFunctionAttr of attribute_info
  194. | `ExternalSourceSymbolAttr of attribute_info
  195. | `FinalAttr of attribute_info
  196. | `FlagEnumAttr of attribute_info
  197. | `FlattenAttr of attribute_info
  198. | `FormatAttr of attribute_info
  199. | `FormatArgAttr of attribute_info
  200. | `FunctionReturnThunksAttr of attribute_info
  201. | `GNUInlineAttr of attribute_info
  202. | `GuardedByAttr of attribute_info
  203. | `GuardedVarAttr of attribute_info
  204. | `HIPManagedAttr of attribute_info
  205. | `HLSLNumThreadsAttr of attribute_info
  206. | `HLSLResourceAttr of attribute_info
  207. | `HLSLResourceBindingAttr of attribute_info
  208. | `HLSLResourceClassAttr of attribute_info
  209. | `HLSLShaderAttr of attribute_info
  210. | `HotAttr of attribute_info
  211. | `HybridPatchableAttr of attribute_info
  212. | `IBActionAttr of attribute_info
  213. | `IBOutletAttr of attribute_info
  214. | `IBOutletCollectionAttr of attribute_info
  215. | `InitPriorityAttr of attribute_info
  216. | `InternalLinkageAttr of attribute_info
  217. | `LTOVisibilityPublicAttr of attribute_info
  218. | `LayoutVersionAttr of attribute_info
  219. | `LeafAttr of attribute_info
  220. | `LockReturnedAttr of attribute_info
  221. | `LocksExcludedAttr of attribute_info
  222. | `M68kInterruptAttr of attribute_info
  223. | `MIGServerRoutineAttr of attribute_info
  224. | `MSAllocatorAttr of attribute_info
  225. | `MSConstexprAttr of attribute_info
  226. | `MSInheritanceAttr of attribute_info
  227. | `MSNoVTableAttr of attribute_info
  228. | `MSP430InterruptAttr of attribute_info
  229. | `MSStructAttr of attribute_info
  230. | `MSVtorDispAttr of attribute_info
  231. | `MaxFieldAlignmentAttr of attribute_info
  232. | `MayAliasAttr of attribute_info
  233. | `MaybeUndefAttr of attribute_info
  234. | `MicroMipsAttr of attribute_info
  235. | `MinSizeAttr of attribute_info
  236. | `MinVectorWidthAttr of attribute_info
  237. | `Mips16Attr of attribute_info
  238. | `MipsInterruptAttr of attribute_info
  239. | `MipsLongCallAttr of attribute_info
  240. | `MipsShortCallAttr of attribute_info
  241. | `NSConsumesSelfAttr of attribute_info
  242. | `NSErrorDomainAttr of attribute_info
  243. | `NSReturnsAutoreleasedAttr of attribute_info
  244. | `NSReturnsNotRetainedAttr of attribute_info
  245. | `NVPTXKernelAttr of attribute_info
  246. | `NakedAttr of attribute_info
  247. | `NoAliasAttr of attribute_info
  248. | `NoCommonAttr of attribute_info
  249. | `NoDebugAttr of attribute_info
  250. | `NoDestroyAttr of attribute_info
  251. | `NoDuplicateAttr of attribute_info
  252. | `NoInstrumentFunctionAttr of attribute_info
  253. | `NoMicroMipsAttr of attribute_info
  254. | `NoMips16Attr of attribute_info
  255. | `NoProfileFunctionAttr of attribute_info
  256. | `NoRandomizeLayoutAttr of attribute_info
  257. | `NoReturnAttr of attribute_info
  258. | `NoSanitizeAttr of attribute_info
  259. | `NoSpeculativeLoadHardeningAttr of attribute_info
  260. | `NoSplitStackAttr of attribute_info
  261. | `NoStackProtectorAttr of attribute_info
  262. | `NoThreadSafetyAnalysisAttr of attribute_info
  263. | `NoThrowAttr of attribute_info
  264. | `NoUniqueAddressAttr of attribute_info
  265. | `NoUwtableAttr of attribute_info
  266. | `NotTailCalledAttr of attribute_info
  267. | `OMPAllocateDeclAttr of attribute_info
  268. | `OMPAssumeAttr of attribute_info
  269. | `OMPCaptureNoInitAttr of attribute_info
  270. | `OMPDeclareTargetDeclAttr of attribute_info
  271. | `OMPDeclareVariantAttr of attribute_info
  272. | `OMPThreadPrivateDeclAttr of attribute_info
  273. | `OSConsumesThisAttr of attribute_info
  274. | `OSReturnsNotRetainedAttr of attribute_info
  275. | `OSReturnsRetainedAttr of attribute_info
  276. | `OSReturnsRetainedOnNonZeroAttr of attribute_info
  277. | `OSReturnsRetainedOnZeroAttr of attribute_info
  278. | `ObjCBridgeAttr of attribute_info
  279. | `ObjCBridgeMutableAttr of attribute_info
  280. | `ObjCBridgeRelatedAttr of attribute_info
  281. | `ObjCExceptionAttr of attribute_info
  282. | `ObjCExplicitProtocolImplAttr of attribute_info
  283. | `ObjCExternallyRetainedAttr of attribute_info
  284. | `ObjCIndependentClassAttr of attribute_info
  285. | `ObjCMethodFamilyAttr of attribute_info
  286. | `ObjCNSObjectAttr of attribute_info
  287. | `ObjCPreciseLifetimeAttr of attribute_info
  288. | `ObjCRequiresPropertyDefsAttr of attribute_info
  289. | `ObjCRequiresSuperAttr of attribute_info
  290. | `ObjCReturnsInnerPointerAttr of attribute_info
  291. | `ObjCRootClassAttr of attribute_info
  292. | `ObjCSubclassingRestrictedAttr of attribute_info
  293. | `OpenCLIntelReqdSubGroupSizeAttr of attribute_info
  294. | `OpenCLKernelAttr of attribute_info
  295. | `OptimizeNoneAttr of attribute_info
  296. | `OverrideAttr of attribute_info
  297. | `OwnerAttr of attribute_info
  298. | `OwnershipAttr of attribute_info
  299. | `PackedAttr of attribute_info
  300. | `ParamTypestateAttr of attribute_info
  301. | `PatchableFunctionEntryAttr of attribute_info
  302. | `PointerAttr of attribute_info
  303. | `PragmaClangBSSSectionAttr of attribute_info
  304. | `PragmaClangDataSectionAttr of attribute_info
  305. | `PragmaClangRelroSectionAttr of attribute_info
  306. | `PragmaClangRodataSectionAttr of attribute_info
  307. | `PragmaClangTextSectionAttr of attribute_info
  308. | `PreferredNameAttr of attribute_info
  309. | `PreferredTypeAttr of attribute_info
  310. | `PtGuardedByAttr of attribute_info
  311. | `PtGuardedVarAttr of attribute_info
  312. | `PureAttr of attribute_info
  313. | `RISCVInterruptAttr of attribute_info
  314. | `RandomizeLayoutAttr of attribute_info
  315. | `ReadOnlyPlacementAttr of attribute_info
  316. | `ReinitializesAttr of attribute_info
  317. | `ReleaseCapabilityAttr of attribute_info
  318. | `ReqdWorkGroupSizeAttr of attribute_info
  319. | `RequiresCapabilityAttr of attribute_info
  320. | `RestrictAttr of attribute_info
  321. | `RetainAttr of attribute_info
  322. | `ReturnTypestateAttr of attribute_info
  323. | `ReturnsNonNullAttr of attribute_info
  324. | `ReturnsTwiceAttr of attribute_info
  325. | `SYCLKernelAttr of attribute_info
  326. | `SYCLSpecialClassAttr of attribute_info
  327. | `ScopedLockableAttr of attribute_info
  328. | `SectionAttr of attribute_info
  329. | `SelectAnyAttr of attribute_info
  330. | `SentinelAttr of attr_tuple * sentinel_attr_info
  331. | `SetTypestateAttr of attribute_info
  332. | `SharedTrylockFunctionAttr of attribute_info
  333. | `SpeculativeLoadHardeningAttr of attribute_info
  334. | `StandaloneDebugAttr of attribute_info
  335. | `StrictFPAttr of attribute_info
  336. | `StrictGuardStackCheckAttr of attribute_info
  337. | `SwiftAsyncAttr of attribute_info
  338. | `SwiftAsyncErrorAttr of attribute_info
  339. | `SwiftAsyncNameAttr of attribute_info
  340. | `SwiftAttrAttr of attribute_info
  341. | `SwiftBridgeAttr of attribute_info
  342. | `SwiftBridgedTypedefAttr of attribute_info
  343. | `SwiftErrorAttr of attribute_info
  344. | `SwiftImportAsNonGenericAttr of attribute_info
  345. | `SwiftImportPropertyAsAccessorsAttr of attribute_info
  346. | `SwiftNameAttr of attribute_info
  347. | `SwiftNewTypeAttr of attribute_info
  348. | `SwiftPrivateAttr of attribute_info
  349. | `TLSModelAttr of attribute_info
  350. | `TargetAttr of attribute_info
  351. | `TargetClonesAttr of attribute_info
  352. | `TargetVersionAttr of attribute_info
  353. | `TestTypestateAttr of attribute_info
  354. | `TransparentUnionAttr of attribute_info
  355. | `TrivialABIAttr of attribute_info
  356. | `TryAcquireCapabilityAttr of attribute_info
  357. | `TypeTagForDatatypeAttr of attribute_info
  358. | `TypeVisibilityAttr of attribute_info
  359. | `UnavailableAttr of attribute_info
  360. | `UninitializedAttr of attribute_info
  361. | `UnsafeBufferUsageAttr of attribute_info
  362. | `UnusedAttr of attribute_info
  363. | `UsedAttr of attribute_info
  364. | `UsingIfExistsAttr of attribute_info
  365. | `UuidAttr of attribute_info
  366. | `VTablePointerAuthenticationAttr of attribute_info
  367. | `VecReturnAttr of attribute_info
  368. | `VecTypeHintAttr of attribute_info
  369. | `VisibilityAttr of attr_tuple * visibility_attr
  370. | `WarnUnusedAttr of attribute_info
  371. | `WarnUnusedResultAttr of attribute_info
  372. | `WeakAttr of attribute_info
  373. | `WeakImportAttr of attribute_info
  374. | `WeakRefAttr of attribute_info
  375. | `WebAssemblyExportNameAttr of attribute_info
  376. | `WebAssemblyImportModuleAttr of attribute_info
  377. | `WebAssemblyImportNameAttr of attribute_info
  378. | `WorkGroupSizeHintAttr of attribute_info
  379. | `X86ForceAlignArgPointerAttr of attribute_info
  380. | `XRayInstrumentAttr of attribute_info
  381. | `XRayLogArgsAttr of attribute_info
  382. | `ZeroCallUsedRegsAttr of attribute_info
  383. | `AbiTagAttr of attribute_info
  384. | `AliasAttr of attribute_info
  385. | `AlignValueAttr of attribute_info
  386. | `BuiltinAliasAttr of attribute_info
  387. | `CalledOnceAttr of attribute_info
  388. | `IFuncAttr of attribute_info
  389. | `InitSegAttr of attribute_info
  390. | `LoaderUninitializedAttr of attribute_info
  391. | `LoopHintAttr of attribute_info
  392. | `ModeAttr of attribute_info
  393. | `NoBuiltinAttr of attribute_info
  394. | `NoEscapeAttr of attribute_info
  395. | `OMPCaptureKindAttr of attribute_info
  396. | `OMPDeclareSimdDeclAttr of attribute_info
  397. | `OMPReferencedVarAttr of attribute_info
  398. | `ObjCBoxableAttr of attribute_info
  399. | `ObjCClassStubAttr of attribute_info
  400. | `ObjCDesignatedInitializerAttr of attribute_info
  401. | `ObjCDirectAttr of attribute_info
  402. | `ObjCDirectMembersAttr of attribute_info
  403. | `ObjCNonLazyClassAttr of attribute_info
  404. | `ObjCNonRuntimeProtocolAttr of attribute_info
  405. | `ObjCRuntimeNameAttr of attribute_info
  406. | `ObjCRuntimeVisibleAttr of attribute_info
  407. | `OpenCLAccessAttr of attribute_info
  408. | `OverloadableAttr of attribute_info
  409. | `RenderScriptKernelAttr of attribute_info
  410. | `SwiftObjCMembersAttr of attribute_info
  411. | `SwiftVersionedAdditionAttr of attribute_info
  412. | `SwiftVersionedRemovalAttr of attribute_info
  413. | `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. | VerbatimBlockLineComment of comment_info * comment list
  2. | TextComment of comment_info * comment list
  3. | InlineCommandComment of comment_info * comment list
  4. | HTMLStartTagComment of comment_info * comment list
  5. | HTMLEndTagComment of comment_info * comment list
  6. | FullComment of comment_info * comment list
  7. | ParagraphComment of comment_info * comment list
  8. | BlockCommandComment of comment_info * comment list
  9. | VerbatimLineComment of comment_info * comment list
  10. | VerbatimBlockComment of comment_info * comment list
  11. | TParamCommandComment of comment_info * comment list
  12. | ParamCommandComment 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 binding_decl_info = {
  1. binding_var : var_decl_info option;
  2. bound_decl_type : qual_type option;
}
and 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. | TranslationUnitDecl of decl_info * decl list * decl_context_info * translation_unit_decl_info
  2. | TopLevelStmtDecl of decl_info
  3. | RequiresExprBodyDecl of decl_info
  4. | LinkageSpecDecl of decl_info * decl list * decl_context_info
  5. | ExternCContextDecl of decl_info
  6. | ExportDecl of decl_info
  7. | CapturedDecl of decl_info * decl list * decl_context_info
  8. | BlockDecl of decl_info * block_decl_info
  9. | StaticAssertDecl of decl_info
  10. | PragmaDetectMismatchDecl of decl_info
  11. | PragmaCommentDecl of decl_info
  12. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
  13. | OMPThreadPrivateDecl of decl_info
  14. | OMPRequiresDecl of decl_info
  15. | OMPAllocateDecl of decl_info
  16. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
  17. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_protocol_decl_info
  18. | ObjCInterfaceDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_interface_decl_info
  19. | ObjCImplementationDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_implementation_decl_info
  20. | ObjCCategoryImplDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_category_impl_decl_info
  21. | ObjCCategoryDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_category_decl_info
  22. | NamespaceDecl of decl_info * named_decl_info * decl list * decl_context_info * namespace_decl_info
  23. | HLSLBufferDecl of decl_info * named_decl_info
  24. | OMPDeclareReductionDecl of decl_info * named_decl_info * qual_type
  25. | OMPDeclareMapperDecl of decl_info * named_decl_info * qual_type
  26. | UnresolvedUsingValueDecl of decl_info * named_decl_info * qual_type
  27. | UnnamedGlobalConstantDecl of decl_info * named_decl_info * qual_type
  28. | TemplateParamObjectDecl of decl_info * named_decl_info * qual_type
  29. | MSGuidDecl of decl_info * named_decl_info * qual_type
  30. | IndirectFieldDecl of decl_info * named_decl_info * qual_type * decl_ref list
  31. | EnumConstantDecl of decl_info * named_decl_info * qual_type * enum_constant_decl_info
  32. | FunctionDecl of decl_info * named_decl_info * qual_type * function_decl_info
  33. | CXXMethodDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  34. | CXXDestructorDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  35. | CXXConversionDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  36. | CXXConstructorDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  37. | CXXDeductionGuideDecl of decl_info * named_decl_info * qual_type * function_decl_info
  38. | VarDecl of decl_info * named_decl_info * qual_type * var_decl_info
  39. | VarTemplateSpecializationDecl of template_instantiation_arg_info list * decl_info * named_decl_info * qual_type * var_decl_info
  40. | VarTemplatePartialSpecializationDecl of template_instantiation_arg_info list * decl_info * named_decl_info * qual_type * var_decl_info
  41. | ParmVarDecl of decl_info * named_decl_info * qual_type * var_decl_info
  42. | OMPCapturedExprDecl of decl_info * named_decl_info * qual_type * var_decl_info
  43. | ImplicitParamDecl of decl_info * named_decl_info * qual_type * var_decl_info
  44. | DecompositionDecl of decl_info * named_decl_info * qual_type * var_decl_info * decl list
  45. | NonTypeTemplateParmDecl of decl_info * named_decl_info * qual_type
  46. | MSPropertyDecl of decl_info * named_decl_info * qual_type
  47. | FieldDecl of decl_info * named_decl_info * qual_type * field_decl_info
  48. | ObjCIvarDecl of decl_info * named_decl_info * qual_type * field_decl_info * obj_c_ivar_decl_info
  49. | ObjCAtDefsFieldDecl of decl_info * named_decl_info * qual_type * field_decl_info
  50. | BindingDecl of decl_info * named_decl_info * qual_type * binding_decl_info
  51. | UsingShadowDecl of decl_info * named_decl_info
  52. | ConstructorUsingShadowDecl of decl_info * named_decl_info
  53. | UsingPackDecl of decl_info * named_decl_info
  54. | UsingDirectiveDecl of decl_info * named_decl_info * using_directive_decl_info
  55. | UnresolvedUsingIfExistsDecl of decl_info * named_decl_info
  56. | RecordDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info
  57. | CXXRecordDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info
  58. | 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
  59. | 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
  60. | EnumDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * enum_decl_info
  61. | UnresolvedUsingTypenameDecl of decl_info * named_decl_info * type_ptr
  62. | TypedefDecl of decl_info * named_decl_info * type_ptr * typedef_decl_info
  63. | TypeAliasDecl of decl_info * named_decl_info * type_ptr
  64. | ObjCTypeParamDecl of decl_info * named_decl_info * type_ptr
  65. | TemplateTypeParmDecl of decl_info * named_decl_info * type_ptr
  66. | TemplateTemplateParmDecl of decl_info * named_decl_info
  67. | VarTemplateDecl of decl_info * named_decl_info
  68. | TypeAliasTemplateDecl of decl_info * named_decl_info
  69. | FunctionTemplateDecl of decl_info * named_decl_info * template_decl_info
  70. | ClassTemplateDecl of decl_info * named_decl_info * template_decl_info
  71. | ConceptDecl of decl_info * named_decl_info
  72. | BuiltinTemplateDecl of decl_info * named_decl_info
  73. | ObjCPropertyDecl of decl_info * named_decl_info * obj_c_property_decl_info
  74. | ObjCCompatibleAliasDecl of decl_info * named_decl_info * obj_c_compatible_alias_decl_info
  75. | NamespaceAliasDecl of decl_info * named_decl_info * namespace_alias_decl_info
  76. | LabelDecl of decl_info * named_decl_info
  77. | UsingEnumDecl of decl_info * named_decl_info
  78. | UsingDecl of decl_info * named_decl_info
  79. | LifetimeExtendedTemporaryDecl of decl_info
  80. | ImportDecl of decl_info * string
  81. | ImplicitConceptSpecializationDecl of decl_info
  82. | FriendTemplateDecl of decl_info
  83. | FriendDecl of decl_info * friend_info
  84. | FileScopeAsmDecl of decl_info
  85. | EmptyDecl of decl_info
  86. | AccessSpecDecl of 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 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. | WhileStmt of stmt_info * stmt list
  2. | LabelStmt of stmt_info * stmt list * string
  3. | VAArgExpr of stmt_info * stmt list * expr_info
  4. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
  5. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info * unary_expr_or_type_trait_expr_info
  6. | TypoExpr of stmt_info * stmt list * expr_info
  7. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
  8. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
  9. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
  10. | StringLiteral of stmt_info * stmt list * expr_info * string list
  11. | StmtExpr of stmt_info * stmt list * expr_info
  12. | SourceLocExpr of stmt_info * stmt list * expr_info
  13. | SizeOfPackExpr of stmt_info * stmt list * expr_info
  14. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
  15. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
  16. | RequiresExpr of stmt_info * stmt list * expr_info
  17. | RecoveryExpr of stmt_info * stmt list * expr_info
  18. | PseudoObjectExpr of stmt_info * stmt list * expr_info
  19. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
  20. | ParenListExpr of stmt_info * stmt list * expr_info
  21. | ParenExpr of stmt_info * stmt list * expr_info
  22. | PackIndexingExpr of stmt_info * stmt list * expr_info
  23. | PackExpansionExpr of stmt_info * stmt list * expr_info
  24. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
  25. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info * unresolved_lookup_expr_info
  26. | OpaqueValueExpr of stmt_info * stmt list * expr_info * opaque_value_expr_info
  27. | OffsetOfExpr of stmt_info * stmt list * expr_info * offset_of_expr_info
  28. | ObjCSubscriptRefExpr of stmt_info * stmt list * expr_info * obj_c_subscript_ref_expr_info
  29. | ObjCStringLiteral of stmt_info * stmt list * expr_info
  30. | ObjCSelectorExpr of stmt_info * stmt list * expr_info * selector
  31. | ObjCProtocolExpr of stmt_info * stmt list * expr_info * decl_ref
  32. | ObjCPropertyRefExpr of stmt_info * stmt list * expr_info * obj_c_property_ref_expr_info
  33. | ObjCMessageExpr of stmt_info * stmt list * expr_info * obj_c_message_expr_info
  34. | ObjCIvarRefExpr of stmt_info * stmt list * expr_info * obj_c_ivar_ref_expr_info
  35. | ObjCIsaExpr of stmt_info * stmt list * expr_info
  36. | ObjCIndirectCopyRestoreExpr of stmt_info * stmt list * expr_info
  37. | ObjCEncodeExpr of stmt_info * stmt list * expr_info * objc_encode_expr_info
  38. | ObjCDictionaryLiteral of stmt_info * stmt list * expr_info * obj_c_dictionary_literal_expr_info
  39. | ObjCBoxedExpr of stmt_info * stmt list * expr_info * objc_boxed_expr_info
  40. | ObjCBoolLiteralExpr of stmt_info * stmt list * expr_info * int
  41. | ObjCAvailabilityCheckExpr of stmt_info * stmt list * expr_info * obj_c_availability_check_expr_info
  42. | ObjCArrayLiteral of stmt_info * stmt list * expr_info * obj_c_array_literal_expr_info
  43. | OMPIteratorExpr of stmt_info * stmt list * expr_info
  44. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
  45. | NoInitExpr of stmt_info * stmt list * expr_info
  46. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
  47. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
  48. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
  49. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
  50. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
  51. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
  52. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
  53. | InitListExpr of stmt_info * stmt list * expr_info
  54. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
  55. | ImaginaryLiteral of stmt_info * stmt list * expr_info
  56. | GenericSelectionExpr of stmt_info * stmt list * expr_info * generic_selection_info
  57. | GNUNullExpr of stmt_info * stmt list * expr_info
  58. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
  59. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
  60. | ConstantExpr of stmt_info * stmt list * expr_info
  61. | FloatingLiteral of stmt_info * stmt list * expr_info * string
  62. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
  63. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
  64. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
  65. | EmbedExpr of stmt_info * stmt list * expr_info
  66. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
  67. | DesignatedInitExpr of stmt_info * stmt list * expr_info
  68. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
  69. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
  70. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
  71. | CoyieldExpr of stmt_info * stmt list * expr_info
  72. | CoawaitExpr of stmt_info * stmt list * expr_info
  73. | ConvertVectorExpr of stmt_info * stmt list * expr_info
  74. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
  75. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
  76. | ChooseExpr of stmt_info * stmt list * expr_info
  77. | CharacterLiteral of stmt_info * stmt list * expr_info * int
  78. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
  79. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * obj_c_bridged_cast_expr_info
  80. | CXXStaticCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  81. | CXXReinterpretCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  82. | CXXDynamicCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  83. | CXXConstCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  84. | CXXAddrspaceCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  85. | CXXFunctionalCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  86. | CStyleCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  87. | BuiltinBitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  88. | CallExpr of stmt_info * stmt list * expr_info
  89. | UserDefinedLiteral of stmt_info * stmt list * expr_info
  90. | CXXOperatorCallExpr of stmt_info * stmt list * expr_info
  91. | CXXMemberCallExpr of stmt_info * stmt list * expr_info
  92. | CUDAKernelCallExpr of stmt_info * stmt list * expr_info
  93. | CXXUuidofExpr of stmt_info * stmt list * expr_info
  94. | CXXUnresolvedConstructExpr of stmt_info * stmt list * expr_info
  95. | CXXTypeidExpr of stmt_info * stmt list * expr_info
  96. | CXXThrowExpr of stmt_info * stmt list * expr_info
  97. | CXXThisExpr of stmt_info * stmt list * expr_info
  98. | CXXStdInitializerListExpr of stmt_info * stmt list * expr_info
  99. | CXXScalarValueInitExpr of stmt_info * stmt list * expr_info
  100. | CXXRewrittenBinaryOperator of stmt_info * stmt list * expr_info
  101. | CXXPseudoDestructorExpr of stmt_info * stmt list * expr_info
  102. | CXXParenListInitExpr of stmt_info * stmt list * expr_info
  103. | CXXNullPtrLiteralExpr of stmt_info * stmt list * expr_info
  104. | CXXNoexceptExpr of stmt_info * stmt list * expr_info * cxx_noexcept_expr_info
  105. | CXXNewExpr of stmt_info * stmt list * expr_info * cxx_new_expr_info
  106. | CXXInheritedCtorInitExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  107. | CXXFoldExpr of stmt_info * stmt list * expr_info
  108. | CXXDependentScopeMemberExpr of stmt_info * stmt list * expr_info
  109. | CXXDeleteExpr of stmt_info * stmt list * expr_info * cxx_delete_expr_info
  110. | CXXDefaultInitExpr of stmt_info * stmt list * expr_info * cxx_default_expr_info
  111. | CXXDefaultArgExpr of stmt_info * stmt list * expr_info * cxx_default_expr_info
  112. | CXXConstructExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  113. | CXXTemporaryObjectExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  114. | CXXBoolLiteralExpr of stmt_info * stmt list * expr_info * int
  115. | CXXBindTemporaryExpr of stmt_info * stmt list * expr_info * cxx_bind_temporary_expr_info
  116. | BlockExpr of stmt_info * stmt list * expr_info * decl
  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. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  120. | AsTypeExpr of stmt_info * stmt list * expr_info
  121. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  122. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  123. | ArraySectionExpr of stmt_info * stmt list * expr_info
  124. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  125. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  126. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  127. | ConditionalOperator of stmt_info * stmt list * expr_info
  128. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  129. | AttributedStmt of stmt_info * stmt list * attribute list
  130. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  131. | DefaultStmt of stmt_info * stmt list
  132. | CaseStmt of stmt_info * stmt list
  133. | SEHTryStmt of stmt_info * stmt list
  134. | SEHLeaveStmt of stmt_info * stmt list
  135. | SEHFinallyStmt of stmt_info * stmt list
  136. | SEHExceptStmt of stmt_info * stmt list
  137. | ReturnStmt of stmt_info * stmt list
  138. | OpenACCLoopConstruct of stmt_info * stmt list
  139. | OpenACCComputeConstruct of stmt_info * stmt list
  140. | ObjCForCollectionStmt of stmt_info * stmt list
  141. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  142. | ObjCAtTryStmt of stmt_info * stmt list
  143. | ObjCAtThrowStmt of stmt_info * stmt list
  144. | ObjCAtSynchronizedStmt of stmt_info * stmt list
  145. | ObjCAtFinallyStmt of stmt_info * stmt list
  146. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  147. | OMPTeamsDirective of stmt_info * stmt list
  148. | OMPTaskyieldDirective of stmt_info * stmt list
  149. | OMPTaskwaitDirective of stmt_info * stmt list
  150. | OMPTaskgroupDirective of stmt_info * stmt list
  151. | OMPTaskDirective of stmt_info * stmt list
  152. | OMPTargetUpdateDirective of stmt_info * stmt list
  153. | OMPTargetTeamsDirective of stmt_info * stmt list
  154. | OMPTargetParallelForDirective of stmt_info * stmt list
  155. | OMPTargetParallelDirective of stmt_info * stmt list
  156. | OMPTargetExitDataDirective of stmt_info * stmt list
  157. | OMPTargetEnterDataDirective of stmt_info * stmt list
  158. | OMPTargetDirective of stmt_info * stmt list
  159. | OMPTargetDataDirective of stmt_info * stmt list
  160. | OMPSingleDirective of stmt_info * stmt list
  161. | OMPSectionsDirective of stmt_info * stmt list
  162. | OMPSectionDirective of stmt_info * stmt list
  163. | OMPScopeDirective of stmt_info * stmt list
  164. | OMPScanDirective of stmt_info * stmt list
  165. | OMPParallelSectionsDirective of stmt_info * stmt list
  166. | OMPParallelMasterDirective of stmt_info * stmt list
  167. | OMPParallelMaskedDirective of stmt_info * stmt list
  168. | OMPParallelDirective of stmt_info * stmt list
  169. | OMPOrderedDirective of stmt_info * stmt list
  170. | OMPMetaDirective of stmt_info * stmt list
  171. | OMPMasterDirective of stmt_info * stmt list
  172. | OMPMaskedDirective of stmt_info * stmt list
  173. | OMPUnrollDirective of stmt_info * stmt list
  174. | OMPTileDirective of stmt_info * stmt list
  175. | OMPReverseDirective of stmt_info * stmt list
  176. | OMPInterchangeDirective of stmt_info * stmt list
  177. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  178. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  179. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  180. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  181. | OMPTeamsDistributeDirective of stmt_info * stmt list
  182. | OMPTaskLoopSimdDirective of stmt_info * stmt list
  183. | OMPTaskLoopDirective of stmt_info * stmt list
  184. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  185. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  186. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  187. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  188. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  189. | OMPTargetSimdDirective of stmt_info * stmt list
  190. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  191. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  192. | OMPSimdDirective of stmt_info * stmt list
  193. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  194. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  195. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  196. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  197. | OMPParallelGenericLoopDirective of stmt_info * stmt list
  198. | OMPParallelForSimdDirective of stmt_info * stmt list
  199. | OMPParallelForDirective of stmt_info * stmt list
  200. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  201. | OMPMasterTaskLoopDirective of stmt_info * stmt list
  202. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  203. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  204. | OMPGenericLoopDirective of stmt_info * stmt list
  205. | OMPForSimdDirective of stmt_info * stmt list
  206. | OMPForDirective of stmt_info * stmt list
  207. | OMPDistributeSimdDirective of stmt_info * stmt list
  208. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  209. | OMPDistributeParallelForDirective of stmt_info * stmt list
  210. | OMPDistributeDirective of stmt_info * stmt list
  211. | OMPInteropDirective of stmt_info * stmt list
  212. | OMPFlushDirective of stmt_info * stmt list
  213. | OMPErrorDirective of stmt_info * stmt list
  214. | OMPDispatchDirective of stmt_info * stmt list
  215. | OMPDepobjDirective of stmt_info * stmt list
  216. | OMPCriticalDirective of stmt_info * stmt list
  217. | OMPCancellationPointDirective of stmt_info * stmt list
  218. | OMPCancelDirective of stmt_info * stmt list
  219. | OMPBarrierDirective of stmt_info * stmt list
  220. | OMPAtomicDirective of stmt_info * stmt list
  221. | OMPCanonicalLoop of stmt_info * stmt list
  222. | NullStmt of stmt_info * stmt list
  223. | MSDependentExistsStmt of stmt_info * stmt list
  224. | IndirectGotoStmt of stmt_info * stmt list
  225. | IfStmt of stmt_info * stmt list * if_stmt_info
  226. | GotoStmt of stmt_info * stmt list * goto_stmt_info
  227. | ForStmt of stmt_info * stmt list
  228. | DoStmt of stmt_info * stmt list
  229. | DeclStmt of stmt_info * stmt list * decl list
  230. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  231. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  232. | ContinueStmt of stmt_info * stmt list
  233. | CompoundStmt of stmt_info * stmt list
  234. | CapturedStmt of stmt_info * stmt list
  235. | CXXTryStmt of stmt_info * stmt list
  236. | CXXForRangeStmt of stmt_info * stmt list
  237. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  238. | BreakStmt of stmt_info * stmt list
  239. | MSAsmStmt of stmt_info * stmt list
  240. | GCCAsmStmt 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;
}