• 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
          • Vl-module
          • Vl-vardecl
          • Expressions
          • Vl-fundecl
          • Vl-assign
          • Vl-gateinst
          • Vl-modinst
          • Vl-commentmap
          • Vl-portdecl
          • Vl-taskdecl
          • Vl-design
          • Vl-interface
          • Vl-plainarglist->exprs
          • Vl-taskdecllist->names
          • Vl-fundecllist->names
          • Vl-package
          • Vl-port
          • Vl-udp
          • Vl-paramdecl
          • Vl-genelement
          • Vl-cycledelayrange
          • Vl-namedarg
          • Vl-sort-blockitems-aux
          • Vl-distitem
          • Vl-gatedelay
          • Vl-repetition
          • Vl-typedef
          • Vl-range
            • Vl-range-p
              • Vl-maybe-range
                • Vl-maybe-range-p
                • Vl-maybe-range-fix
                • Vl-maybe-range-case
                  • Vl-maybe-range-equiv
                  • Vl-maybe-range-some
                  • Vl-maybe-range-none
              • Vl-range-fix
              • Vl-range-equiv
              • Make-vl-range
              • Vl-range->msb
              • Vl-range->lsb
              • Change-vl-range
            • Vl-gatestrength
            • Vl-program
            • Vl-config
            • Vl-always
            • Vl-datatype-update-dims
            • Vl-import
            • Vl-enumbasetype
            • Vl-repeateventcontrol
            • Vl-paramargs
            • Vl-initial
            • Vl-eventcontrol
            • Vl-udpsymbol-p
            • Vl-maybe-range
              • Vl-maybe-range-p
              • Vl-maybe-range-fix
              • Vl-maybe-range-case
                • Vl-maybe-range-equiv
                • Vl-maybe-range-some
                • Vl-maybe-range-none
              • Vl-maybe-nettypename
              • Vl-maybe-gatestrength
              • Vl-maybe-gatedelay
              • Vl-maybe-delayoreventcontrol
              • Vl-alias
              • Maybe-string-fix
              • Vl-maybe-packeddimension
              • Vl-fwdtypedef
              • Vl-evatom
              • Vl-packeddimension-p
              • Vl-maybe-udpsymbol
              • Vl-maybe-module
              • Vl-maybe-direction
              • Vl-maybe-datatype
              • Vl-maybe-cstrength
              • Vl-direction-p
              • Vl-arguments
              • Vl-maybe-design
              • Vl-udpline
              • Vl-exprdist
              • Vl-context1
              • Vl-genvar
              • Vl-enumitem
              • Vl-datatype-update-udims
              • Vl-datatype-update-pdims
              • Vl-modelement
              • Vl-udpedge
              • Vl-delaycontrol
              • Vl-context
              • Vl-sort-blockitems
              • Vl-distweighttype-p
              • Vl-ctxelement->loc
              • Vl-blockitem
              • Vl-vardecllist
              • Vl-module->ifports
              • Vl-modelement->loc
              • Vl-ctxelement
              • Vl-coretypename-p
              • Vl-packeddimensionlist
              • Vl-modelementlist->genelements
              • Vl-gatetype-p
              • Vl-paramdecllist
              • Vl-lifetime-p
              • Vl-datatype->udims
              • Vl-datatype->pdims
              • Vl-timeunit-p
              • Vl-repetitiontype-p
              • Vl-port->name
              • Vl-importlist
              • Vl-genelement->loc
              • Vl-delayoreventcontrol
              • Vl-cstrength-p
              • Statements
              • Vl-udpentry-p
              • Vl-packeddimension-fix
              • Vl-nettypename-p
              • Vl-portdecllist
              • Vl-port->loc
              • Vl-enumbasekind-fix
              • Vl-arguments->args
              • Vl-taskdecllist
              • Vl-portlist
              • Vl-importpart-p
              • Vl-importpart-fix
              • Vl-fundecllist
              • Vl-blockstmt-p
              • Vl-assignlist
              • Vl-alwaystype-p
              • Vl-typedeflist
              • Vl-syntaxversion-p
              • Vl-randomqualifier-p
              • Vl-modinstlist
              • Vl-gateinstlist
              • Vl-blockitemlist
              • Vl-udptable
              • Vl-udplist
              • Vl-udpentrylist
              • Vl-programlist
              • Vl-paramvaluelist
              • Vl-packagelist
              • Vl-namedparamvaluelist
              • Vl-namedarglist
              • Vl-modulelist
              • Vl-modportlist
              • Vl-modport-portlist
              • Vl-interfacelist
              • Vl-initiallist
              • Vl-genvarlist
              • Vl-fwdtypedeflist
              • Vl-evatomlist
              • Vl-enumitemlist
              • Vl-distlist
              • Vl-configlist
              • Vl-alwayslist
              • Vl-aliaslist
              • Vl-regularportlist
              • Vl-rangelist-list
              • Vl-rangelist
              • Vl-paramdecllist-list
              • Vl-modelementlist
              • Vl-maybe-range-list
              • Vl-interfaceportlist
              • Vl-argumentlist
              • Data-types
            • Getting-started
            • Utilities
            • Loader
            • Transforms
            • Lint
            • Mlib
            • Server
            • Kit
            • Printer
            • Esim-vl
            • Well-formedness
          • Sv
          • Fgl
          • Vwsim
          • Vl
          • X86isa
          • Svl
          • Rtl
        • Software-verification
        • Math
        • Testing-utilities
      • Vl-maybe-range

      Vl-maybe-range-case

      Case macro for the different kinds of vl-maybe-range structures.

      This is an ACL2::fty sum-type case macro, typically introduced by fty::defflexsum or deftagsum. It allows you to safely check the type of a vl-maybe-range structure, or to split into cases based on its type.

      Short Form

      In its short form, vl-maybe-range-case allows you to safely check the type of a vl-maybe-range structure. For example:

      (vl-maybe-range-case x :none)

      can be used to determine whether x is a none instead of some other kind of vl-maybe-range structure.

      Long Form

      In its longer form, vl-maybe-range-case allows you to split into cases based on the kind of structure you are looking at. A typical example would be:

      (vl-maybe-range-case x
        :none ...
        :some ...)

      It is also possible to consolidate ``uninteresting'' cases using :otherwise.

      For convenience, the case macro automatically binds the fields of x for you, as appropriate for each case. That is, in the :none case, you can use defprod-style foo.bar style accessors for x without having to explicitly add a none b* binder.