• 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
                • 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.