• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
      • Io
      • Defttag
      • Sys-call
      • Save-exec
      • Quicklisp
      • Std/io
      • Oslib
      • Bridge
      • Clex
        • Example-lexer
        • Sin
          • Strin-p
            • Strin
            • Make-strin
            • Strin-left
            • Change-strin
              • Strin-get-file
              • Strin-get-col
              • Strin-nthcdr
              • Strin-get-line
              • Strin-cdr
              • Strin-find
              • Honsed-strin
              • Make-honsed-strin
              • Strin-matches-p
              • Strin-imatches-p
              • Strin-firstn
              • Strin-count-charset
              • Empty-strin
              • Strin-nth
              • Strin-len
              • Strin-endp
              • Strin-car
              • Strin->chars
              • Strin->line
              • Strin->col
              • Strin->file
            • Sin$c
          • Matching-functions
          • Def-sin-progress
        • Tshell
        • Unsound-eval
        • Hacker
        • ACL2s-interface
        • Startup-banner
        • Command-line
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Strin-p

    Change-strin

    A copying macro that lets you create new strin-p structures, based on existing structures.

    Syntax:

    (change-strin x 
                  [:chars <chars>] 
                  [:line <line>] 
                  [:col <col>] 
                  [:file <file>]) 
    

    This is a sometimes useful alternative to make-strin. It constructs a new strin-p structure that is a copy of x, except that you can explicitly change some particular fields. Any fields you don't mention just keep their values from x.

    Definition

    This is an ordinary change- macro introduced by defaggregate.

    Macro: change-strin

    (defmacro change-strin (x &rest args)
      (std::change-aggregate 'strin
                             x args
                             '((:chars . strin->chars)
                               (:line . strin->line)
                               (:col . strin->col)
                               (:file . strin->file))
                             'change-strin
                             'nil))