• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • 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
        • Soft
        • C
          • Syntax-for-tools
            • Disambiguator
            • Abstract-syntax
            • Parser
            • Validator
            • Printer
            • Formalized-subset
            • Mapping-to-language-definition
            • Input-files
            • Defpred
            • Output-files
            • Abstract-syntax-operations
            • Validation-information
            • Implementation-environments
            • Concrete-syntax
              • Grammar
              • Files
                • Fileset
                • File-at-path
                • Filedata
                • Fileset-paths
                • Filepath-filedata-map
                • Irr-fileset
              • Grammar-character-p
              • Keywords
              • Grammar-character-listp
              • File-paths
            • Unambiguity
            • Ascii-identifiers
            • Preprocessing
            • Abstraction-mapping
          • Atc
          • Language
          • Representation
          • Transformation-tools
          • Insertion-sort
          • Pack
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Concrete-syntax

Files

A simple model and representation of files.

The grammar in grammar represents the required structure of the content of a translation unit, which corresponds to the content of a file after it has been subjected to preprocessing (which may add content from #included headers). Recall that for now we only represent C code after preprocessing, so the correspondence between translation units and file contents is exact for now (but we will relax this eventually). The content of a file can be represented as a list of bytes, which must be parsed into a translation unit.

Often a C program, or a C library, or other meaningful C code component, consists of multiple translation units, more in general multiple files, which in the future will include both headers and source files. So here we introduce a notion of a file set as a collection of files, purported to contain, together, a C program, or C library, or other meaningful C component.

Subtopics

Fileset
Fixtype of file sets.
File-at-path
File data at a certain path in a file set.
Filedata
Fixtype of file data.
Fileset-paths
Set of file paths in a file set.
Filepath-filedata-map
Fixtype of omaps from file paths to file data.
Irr-fileset
An irrelevant file set.