• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
        • Syntax-for-tools
        • Atc
        • Language
          • Abstract-syntax
            • Tyspecseq
            • Expr
            • Binop
            • Fileset
            • Obj-declor
            • Ident
              • Identp
              • Ident-fix
              • Ident-equiv
              • Make-ident
              • Change-ident
              • Ident->name
            • Iconst
            • Obj-adeclor
            • Const
            • Fundef
            • Unop
            • File
            • Tag-declon
            • Fun-declor
            • Obj-declon
            • Iconst-length
            • Abstract-syntax-operations
            • 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
            • Ident-set
            • Ident-list
            • 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
          • Integer-formats
          • Types
          • Portable-ascii-identifiers
          • Values
          • Integer-operations
          • Computation-states
          • Object-designators
          • Operations
          • Errors
          • Tag-environments
          • Function-environments
          • Character-sets
          • Flexible-array-member-removal
          • Arithmetic-operations
          • Pointer-operations
          • Bytes
          • Keywords
          • Real-operations
          • Array-operations
          • Scalar-operations
          • Structure-operations
        • Representation
        • Transformation-tools
        • Insertion-sort
        • Pack
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Riscv
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Bigmems
      • Builtins
      • Execloader
      • Aleo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Abstract-syntax

Ident

Fixtype of identifiers [C17:6.4.2].

This is a product type introduced by fty::defprod.

Fields
name — stringp

For now we represent C identifiers as ACL2 strings, which suffice to represent all the ASCII C identifiers. We wrap ACL2 strings into a one-field product fixtype to make it easier to modify or extend this fixtype in the future.

Unconstrained ACL2 strings may not be valid C ASCII identifiers. In the future we may extend this fixtype with suitable restrictions on the ACL2 string.

A C implementation may limit the number of significant characters in identifiers [C17:6.4.2.1/5] [C17:6.4.2.1/6] [C17:5.2.4.1], to 31 for external identifiers and 63 for internal identifiers. In the future, we may add this constraint to this fixtype.

Subtopics

Identp
Recognizer for ident structures.
Ident-fix
Fixing function for ident structures.
Ident-equiv
Basic equivalence relation for ident structures.
Make-ident
Basic constructor macro for ident structures.
Change-ident
Modifying constructor for ident structures.
Ident->name
Get the name field from a ident.