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