• 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
            • Formalized-subset
            • Mapping-to-language-definition
            • Input-files
            • Compilation-database
            • Printer
            • Output-files
            • Abstract-syntax-operations
            • Implementation-environments
            • Abstract-syntax
            • Concrete-syntax
            • Disambiguation
            • Validation
            • Gcc-builtins
            • Preprocessing
              • Preprocessor
                • Pproc
                  • Pproc-directive
                  • Pproc-group-part
                  • Pproc-file
                  • Pproc-include-directive
                  • Pproc-text-line
                    • Pproc-*-group-part
                  • Preprocessor-states
                  • Preprocessor-printer
                  • Pproc-directive
                  • Pread-token
                  • Pproc-files
                  • Pread-token/newline
                  • Pproc-group-part
                  • Preprocessor-lexer
                  • Pproc-file
                  • Pproc-include-directive
                  • Pproc-text-line
                    • Pproc-*-group-part
                    • Punread-token
                    • *pproc-files-max*
                    • String-plexeme-list-alist-to-filepath-filedata-map
                    • String-plexeme-list-alist
                    • Read-input-file-to-preproc
                    • Preprocessor-reader
                    • Preprocessor-messages
                  • External-preprocessing
                • Parsing
              • Atc
              • Transformation-tools
              • Language
              • 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
      • Preprocessor
      • Pproc

      Pproc-text-line

      Preprocess a (non-empty) text line.

      Signature
      (pproc-text-line nontoknls path file preprocessed 
                       preprocessing rev-lexemes ppstate state) 
       
        → 
      (mv erp new-rev-lexemes new-ppstate new-preprocessed state)
      Arguments
      nontoknls — Guard (plexeme-listp nontoknls).
      path — Guard (stringp path).
      file — Guard (stringp file).
      preprocessed — Guard (string-plexeme-list-alistp preprocessed).
      preprocessing — Guard (string-listp preprocessing).
      rev-lexemes — Guard (plexeme-listp rev-lexemes).
      ppstate — Guard (ppstatep ppstate).
      Returns
      new-rev-lexemes — Type (plexeme-listp new-rev-lexemes).
      new-ppstate — Type (ppstatep new-ppstate), given (ppstatep ppstate).
      new-preprocessed — Type (string-plexeme-list-alistp new-preprocessed).

      That is, preprocess a line that does not start with a hash (possibly after some white space and comments). This is called after putting back the first token of the line, but without having put back any leading white space or comments, since those do not matter for the purpose of preprocessing the text line. Recall that empty text lines, i.e. with no tokens (but possibly with some white space and comments), are already handlede in pproc-group-part.