• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
        • Mlib
        • Server
        • Kit
          • Vl-model
          • Vl-json
          • Vl-gather
          • Vl-server
            • Vl-server-opts-p
              • Parse-vl-server-opts
                • Parse-vl-server-opts-long
                  • Parse-vl-server-opts-aux
                  • Parse-vl-server-opts-bundle
                  • Parse-vl-server-opts-short->long-list
                  • Parse-vl-server-opts-short->long
                • Vl-server-opts
                • Make-vl-server-opts
                • Change-vl-server-opts
                • Honsed-vl-server-opts
                • Make-honsed-vl-server-opts
                • *vl-server-opts-usage*
                • Vl-server-opts->root
                • Vl-server-opts->readme
                • Vl-server-opts->public
                • Vl-server-opts->port
                • Vl-server-opts->mem
                • Vl-server-opts->help
            • Vl-pp
            • Vl-lint
            • Vl-main
            • Vl-toolkit-other-command
            • Vl-help
          • Printer
          • Esim-vl
          • Well-formedness
        • Sv
        • Fgl
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Parse-vl-server-opts

    Parse-vl-server-opts-long

    Signature
    (parse-vl-server-opts-long getopt::longname getopt::explicit-val 
                               args getopt::acc getopt::seen) 
     
      → 
    (mv getopt::errmsg getopt::acc rest)
    Arguments
    getopt::longname — Longname we've just found, e.g., "foo" if we've just seen --foo=bar.
        Guard (stringp getopt::longname).
    getopt::explicit-val — Any explicit value passed to this option, e.g., "bar" if we've just seen --foo=bar, or NIL if we've just seen --foo.
        Guard (or (not getopt::explicit-val) (stringp getopt::explicit-val)).
    args — Remaining arguments past longname.
        Guard (string-listp args).
    getopt::acc — Structure we're updating.
        Guard (vl-server-opts-p getopt::acc).
    getopt::seen — List of longnames that we've seen so far.
        Guard (string-listp getopt::seen).
    Returns
    getopt::errmsg — NIL on success or an error message.
    getopt::acc — Updated structure.
        Type (vl-server-opts-p getopt::acc), given (force (vl-server-opts-p getopt::acc)).
    rest — Rest after this one.
        Type (string-listp rest), given (force (string-listp args)).

    Definitions and Theorems

    Function: parse-vl-server-opts-long

    (defun parse-vl-server-opts-long
           (getopt::longname getopt::explicit-val
                             args getopt::acc getopt::seen)
      (declare (xargs :guard (and (stringp getopt::longname)
                                  (or (not getopt::explicit-val)
                                      (stringp getopt::explicit-val))
                                  (string-listp args)
                                  (vl-server-opts-p getopt::acc)
                                  (string-listp getopt::seen))))
      (let ((__function__ 'parse-vl-server-opts-long))
        (declare (ignorable __function__))
        (cond ((equal getopt::longname "help")
               (b* (((when (member-equal getopt::longname getopt::seen))
                     (mv (msg "Option --~s0 given multiple times"
                              getopt::longname)
                         getopt::acc args))
                    ((mv getopt::err value rest)
                     (getopt::parse-plain (cat "--" getopt::longname)
                                          getopt::explicit-val args))
                    ((when getopt::err)
                     (mv getopt::err getopt::acc args))
                    (getopt::acc (change-vl-server-opts getopt::acc
                                                        :help value)))
                 (mv nil getopt::acc rest)))
              ((equal getopt::longname "readme")
               (b* (((when (member-equal getopt::longname getopt::seen))
                     (mv (msg "Option --~s0 given multiple times"
                              getopt::longname)
                         getopt::acc args))
                    ((mv getopt::err value rest)
                     (getopt::parse-plain (cat "--" getopt::longname)
                                          getopt::explicit-val args))
                    ((when getopt::err)
                     (mv getopt::err getopt::acc args))
                    (getopt::acc (change-vl-server-opts getopt::acc
                                                        :readme value)))
                 (mv nil getopt::acc rest)))
              ((equal getopt::longname "mem")
               (b* (((when (member-equal getopt::longname getopt::seen))
                     (mv (msg "Option --~s0 given multiple times"
                              getopt::longname)
                         getopt::acc args))
                    ((mv getopt::err value rest)
                     (getopt::parse-pos (cat "--" getopt::longname)
                                        getopt::explicit-val args))
                    ((when getopt::err)
                     (mv getopt::err getopt::acc args))
                    (getopt::acc (change-vl-server-opts getopt::acc
                                                        :mem value)))
                 (mv nil getopt::acc rest)))
              ((equal getopt::longname "port")
               (b* (((when (member-equal getopt::longname getopt::seen))
                     (mv (msg "Option --~s0 given multiple times"
                              getopt::longname)
                         getopt::acc args))
                    ((mv getopt::err value rest)
                     (getopt::parse-pos (cat "--" getopt::longname)
                                        getopt::explicit-val args))
                    ((when getopt::err)
                     (mv getopt::err getopt::acc args))
                    (getopt::acc (change-vl-server-opts getopt::acc
                                                        :port value)))
                 (mv nil getopt::acc rest)))
              ((equal getopt::longname "root")
               (b* (((when (member-equal getopt::longname getopt::seen))
                     (mv (msg "Option --~s0 given multiple times"
                              getopt::longname)
                         getopt::acc args))
                    ((mv getopt::err value rest)
                     (getopt::parse-string (cat "--" getopt::longname)
                                           getopt::explicit-val args))
                    ((when getopt::err)
                     (mv getopt::err getopt::acc args))
                    (getopt::acc (change-vl-server-opts getopt::acc
                                                        :root value)))
                 (mv nil getopt::acc rest)))
              ((equal getopt::longname "public")
               (b* (((when (member-equal getopt::longname getopt::seen))
                     (mv (msg "Option --~s0 given multiple times"
                              getopt::longname)
                         getopt::acc args))
                    ((mv getopt::err value rest)
                     (getopt::parse-string (cat "--" getopt::longname)
                                           getopt::explicit-val args))
                    ((when getopt::err)
                     (mv getopt::err getopt::acc args))
                    (getopt::acc (change-vl-server-opts getopt::acc
                                                        :public value)))
                 (mv nil getopt::acc rest)))
              (t (mv (msg "Unrecognized option --~s0"
                          getopt::longname)
                     getopt::acc args)))))

    Theorem: vl-server-opts-p-of-parse-vl-server-opts-long.acc

    (defthm vl-server-opts-p-of-parse-vl-server-opts-long.acc
      (implies (force (vl-server-opts-p getopt::acc))
               (b* (((mv getopt::?errmsg
                         getopt::?acc common-lisp::?rest)
                     (parse-vl-server-opts-long
                          getopt::longname getopt::explicit-val
                          args getopt::acc getopt::seen)))
                 (vl-server-opts-p getopt::acc)))
      :rule-classes :rewrite)

    Theorem: string-listp-of-parse-vl-server-opts-long.rest

    (defthm string-listp-of-parse-vl-server-opts-long.rest
      (implies (force (string-listp args))
               (b* (((mv getopt::?errmsg
                         getopt::?acc common-lisp::?rest)
                     (parse-vl-server-opts-long
                          getopt::longname getopt::explicit-val
                          args getopt::acc getopt::seen)))
                 (string-listp rest)))
      :rule-classes :rewrite)

    Theorem: parse-vl-server-opts-long-makes-progress

    (defthm parse-vl-server-opts-long-makes-progress
     (<=
      (len
       (mv-nth
        2
        (parse-vl-server-opts-long getopt::longname getopt::explicit-val
                                   args getopt::acc getopt::seen)))
      (len args))
     :rule-classes ((:rewrite) (:linear)))