• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • C
          • Syntax-for-tools
          • Atc
          • Transformation-tools
          • Language
            • Abstract-syntax
              • Tyspecseq
              • Expr
              • Binop
              • Fileset
              • Obj-declor
              • Abstract-syntax-operations
              • Iconst
              • Obj-adeclor
              • Const
              • Fundef
              • Unop
              • File
              • Tag-declon
                • Tag-declon-fix
                • Tag-declon-case
                • Tag-declonp
                • Tag-declon-equiv
                • Tag-declon-union
                • Tag-declon-struct
                • Tag-declon-enum
                • Tag-declon-kind
              • Fun-declor
              • Obj-declon
              • Iconst-length
              • Label
              • Struct-declon
              • Initer
              • Ext-declon
              • Fun-adeclor
              • Expr-option
              • Iconst-base
              • Initer-option
              • Iconst-option
              • Tyspecseq-option
              • Stmt-option
              • Scspecseq
              • Param-declon
              • Obj-declon-option
              • File-option
              • Tyname
              • Transunit
              • Fun-declon
              • Transunit-result
              • Param-declon-list
              • Struct-declon-list
              • Expr-list
              • Tyspecseq-list
              • Identifiers
              • Ext-declon-list
              • Unop-list
              • Tyname-list
              • Fundef-list
              • Fun-declon-list
              • Binop-list
              • Stmt-fixtypes
              • Expr-fixtypes
            • Integer-ranges
            • Implementation-environments
            • Dynamic-semantics
            • Static-semantics
            • Grammar
            • Types
            • Integer-formats-definitions
            • Computation-states
            • Portable-ascii-identifiers
            • Values
            • Integer-operations
            • Object-designators
            • Operations
            • Errors
            • Tag-environments
            • Function-environments
            • Character-sets
            • Flexible-array-member-removal
            • Arithmetic-operations
            • Pointer-operations
            • Real-operations
            • Array-operations
            • Scalar-operations
            • Structure-operations
          • Representation
          • Insertion-sort
          • Pack
        • Soft
        • Bv
        • Imp-language
        • Ethereum
        • Event-macros
        • Java
        • Riscv
        • Bitcoin
        • Zcash
        • Yul
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Axe
        • Lists-light
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Abstract-syntax

Tag-declon

Fixtype of declarations of structure, union, and enumeration types [C17:6.7.2.1] [C17:6.7.2.2].

This is a tagged union type, introduced by fty::deftagsum.

Member Tags → Types
:struct → tag-declon-struct
:union → tag-declon-union
:enum → tag-declon-enum

These are declarations that consists of single structure, union, and enumeration specifiers, which introduce structure, union, and enumeration types. These kinds of types are all identified by tags [C17:6.2.3], which justifies our choice of name for this fixtype.

These are declarations that include the structure or union members, or the enumerators (which are identifiers). That is, these tag declarations introduce the type with that tag. We only model structure and union members of the form discussed in struct-declon; we only model enumerators that are single identifiers, without bindings to constant expressions.

Subtopics

Tag-declon-fix
Fixing function for tag-declon structures.
Tag-declon-case
Case macro for the different kinds of tag-declon structures.
Tag-declonp
Recognizer for tag-declon structures.
Tag-declon-equiv
Basic equivalence relation for tag-declon structures.
Tag-declon-union
Tag-declon-struct
Tag-declon-enum
Tag-declon-kind
Get the kind (tag) of a tag-declon structure.