• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
      • Vwsim
      • Vl
        • Syntax
        • Loader
          • Preprocessor
          • Vl-loadconfig
          • Vl-loadstate
          • Lexer
          • Parser
            • Parse-expressions
            • Parse-udps
            • Parse-statements
            • Parse-property
            • Vl-genelements
            • Parse-paramdecls
            • Parse-blockitems
              • Vl-ranges->dimensions
              • Vl-2005-parse-block-item-declaration-noatts
              • Vl-2012-parse-block-item-declaration-noatts
              • Vl-parse-main-data-declaration
              • Vl-parse-type-declaration
              • Vl-parse-fwd-typedef
              • Vl-parse-0+-block-item-declarations
              • Vl-parse-list-of-event-identifiers
              • Vl-parse-list-of-variable-identifiers
              • Vl-parse-realtime-declaration
              • Vl-parse-block-item-declaration-noatts
              • Vl-parse-time-declaration
              • Vl-parse-reg-declaration
              • Vl-parse-real-declaration
              • Vl-parse-integer-declaration
              • Vl-build-vardecls
                • Vl-vardeclassign-p
              • Vl-parse-event-declaration
              • Vl-parse-block-item-declaration
              • Vl-parse-1+-let-ports
              • Vl-parse-variable-type
              • Vl-parse-let-declaration
              • Vl-parse-0+-let-ports
            • Parse-utils
            • Parse-insts
            • Parse-functions
            • Parse-assignments
            • Parse-clocking
            • Parse-strengths
            • Vl-parse-genvar-declaration
            • Vl-parse
            • Parse-netdecls
            • Parse-asserts
            • Vl-maybe-parse-lifetime
            • Parse-dpi-import-export
            • Parse-ports
            • Parse-timeunits
            • Seq
            • Parse-packages
            • Parse-eventctrl
          • Vl-load-merge-descriptions
          • Vl-find-basename/extension
          • Vl-load-file
          • Vl-loadresult
          • Scope-of-defines
          • Vl-find-file
          • Vl-flush-out-descriptions
          • Vl-description
          • Vl-read-file
          • Vl-includeskips-report-gather
          • Vl-load-main
          • Extended-characters
          • Vl-load
          • Vl-load-description
          • Vl-descriptions-left-to-load
          • Inject-warnings
          • Vl-preprocess-debug
          • Vl-write-preprocessor-debug-file
          • Vl-read-file-report-gather
          • Vl-load-descriptions
          • Vl-load-files
          • Translate-off
          • Vl-load-read-file-hook
          • Vl-read-file-report
          • Vl-loadstate-pad
          • Vl-load-summary
          • Vl-collect-modules-from-descriptions
          • Vl-loadstate->warnings
          • Vl-iskips-report
          • Vl-descriptionlist
        • Warnings
        • Getting-started
        • Utilities
        • Printer
        • Kit
        • Mlib
        • Transforms
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Parse-blockitems

Vl-build-vardecls

Signature
(vl-build-vardecls &key temps constp varp lifetime type atts loc) 
  → 
vardecls
Arguments
temps — Guard (vl-vardeclassignlist-p temps).
constp — Guard (booleanp constp).
varp — Guard (booleanp varp).
lifetime — Guard (vl-lifetime-p lifetime).
type — Guard (vl-datatype-p type).
atts — Guard (vl-atts-p atts).
loc — Guard (vl-location-p loc).
Returns
vardecls — Type (vl-vardecllist-p vardecls).

Definitions and Theorems

Function: vl-build-vardecls-fn

(defun vl-build-vardecls-fn
       (temps constp varp lifetime type atts loc)
 (declare (xargs :guard (and (vl-vardeclassignlist-p temps)
                             (booleanp constp)
                             (booleanp varp)
                             (vl-lifetime-p lifetime)
                             (vl-datatype-p type)
                             (vl-atts-p atts)
                             (vl-location-p loc))))
 (let ((__function__ 'vl-build-vardecls))
   (declare (ignorable __function__))
   (b* (((when (atom temps)) nil)
        ((vl-vardeclassign temp1) (car temps))
        (decl1 (make-vl-vardecl
                    :name temp1.id
                    :initval temp1.rhs
                    :constp constp
                    :varp varp
                    :lifetime lifetime
                    :type (vl-datatype-update-udims temp1.dims type)
                    :atts atts
                    :loc loc)))
     (cons decl1
           (vl-build-vardecls :temps (cdr temps)
                              :constp constp
                              :varp varp
                              :lifetime lifetime
                              :type type
                              :atts atts
                              :loc loc)))))

Theorem: vl-vardecllist-p-of-vl-build-vardecls

(defthm vl-vardecllist-p-of-vl-build-vardecls
  (b*
   ((vardecls
         (vl-build-vardecls-fn temps
                               constp varp lifetime type atts loc)))
   (vl-vardecllist-p vardecls))
  :rule-classes :rewrite)

Subtopics

Vl-vardeclassign-p
Temporary structure used when parsing variable declarations.