• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • 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
        • Printer
          • Ps
          • Basic-printing
          • Verilog-printing
          • Printing-locally
          • Formatted-printing
          • Accessing-printed-output
          • Vl-printedlist
          • Json-printing
            • Json-encoders
              • Vl-jp-module
              • Vl-jp-warning
              • Vl-jp-constint
                • Vl-jp-vardecl
                • Jp-sym-main
                • Vl-jp-fundecl
                • Vl-jp-taskdecl
                • Vl-jp-modinst
                • Vl-jp-gateinst
                • Vl-jp-portdecl
                • Vl-jp-modport-port
                • Vl-jp-interfaceport
                • Vl-jp-expr
                • Vl-jp-assign
                • Jp-str
                • Vl-jp-warninglist
                • Vl-jp-vardecllist
                • Vl-jp-taskdecllist
                • Vl-jp-regularportlist
                • Vl-jp-portdecllist
                • Vl-jp-plainarglist
                • Vl-jp-paramvaluelist
                • Vl-jp-paramdecllist
                • Vl-jp-paramdecl
                • Vl-jp-packeddimensionlist
                • Vl-jp-namedparamvaluelist
                • Vl-jp-namedarglist
                • Vl-jp-modport-portlist
                • Vl-jp-modinstlist
                • Vl-jp-modelementlist
                • Vl-jp-interfaceportlist
                • Vl-jp-initiallist
                • Vl-jp-genelementlist
                • Vl-jp-gateinstlist
                • Vl-jp-fwdtypedef
                • Vl-jp-fundecllist
                • Vl-jp-enumitemlist
                • Jp-nat
                • Vl-jp-weirdint
                • Vl-jp-repeateventcontrol
                • Vl-jp-regularport
                • Vl-jp-rangelist
                • Vl-jp-portlist
                • Vl-jp-plainarg
                • Vl-jp-namedparamvalue
                • Vl-jp-namedarg
                • Vl-jp-modulelist
                • Vl-jp-modport
                • Vl-jp-location
                • Vl-jp-initial
                • Vl-jp-importlist
                • Vl-jp-import
                • Vl-jp-genvarlist
                • Vl-jp-genvar
                • Vl-jp-gatestrength
                • Vl-jp-gatedelay
                • Vl-jp-eventcontrol
                • Vl-jp-evatomlist
                • Vl-jp-enumitem
                • Vl-jp-enumbasetype
                • Vl-jp-assignlist
                • Vl-jp-alwayslist
                • Vl-jp-always
                • Vl-jp-aliaslist
                • Vl-jp-alias
                • Jp-object
                • Vl-jp-time
                • Vl-jp-sysfunname
                • Vl-jp-range
                • Vl-jp-evatom
                • Vl-jp-delaycontrol
                • Vl-jp-basictype
                • Vl-jp-typename
                • Vl-jp-tagname
                • Vl-jp-string
                • Vl-jp-real
                • Vl-jp-keyguts
                • Vl-jp-id
                • Vl-jp-hidpiece
                • Vl-jp-funname
                • Vl-jp-extint
                • Vl-jp-arguments
                • Vl-jp-paramvalue
                • Vl-jp-packeddimension
                • Vl-jp-maybe-packeddimension
                • Vl-jp-maybe-nettypename
                • Vl-jp-maybe-direction
                • Vl-jp-maybe-cstrength
                • Jp-timeunit
                • Jp-keygutstype
                • Jp-bool
                • Jp-bitlist
                • Jp-bit
                • Jp-bignat
                • Jp-basictypekind
                • Vl-jp-randomqualifier
                • Vl-jp-port
                • Vl-jp-nettypename
                • Vl-jp-maybe-gatedelay
                • Vl-jp-maybe-exprtype
                • Vl-jp-lifetime
                • Vl-jp-gatetype
                • Vl-jp-exprtype
                • Vl-jp-evatomtype
                • Vl-jp-dstrength
                • Vl-jp-direction
                • Vl-jp-deassign-type
                • Vl-jp-cstrength
                • Vl-jp-coretypename
                • Vl-jp-casetype
                • Vl-jp-casecheck
                • Vl-jp-assign-type
                • Vl-jp-alwaystype
                • Jp-maybe-string
                • Jp-maybe-nat
                • Jp-sym
          • Esim-vl
          • Well-formedness
        • Sv
        • Fgl
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Json-encoders

    Vl-jp-constint

    Print the JSON encoding of a vl-constint-p to ps.

    Signature
    (vl-jp-constint x &key (ps 'ps)) → ps
    Arguments
    x — Guard (vl-constint-p x).

    Note that we always encode the value as a string. This is because it is quite common for Verilog constants to run into the hundreds of bits, but the JSON standard doesn't really ever say how big of numbers must be supported and JSON implementations often use machine integers which could not hold such large values.

    Definitions and Theorems

    Function: vl-jp-constint-fn

    (defun vl-jp-constint-fn (x ps)
      (declare (xargs :stobjs (ps)))
      (declare (xargs :guard (vl-constint-p x)))
      (let ((__function__ 'vl-jp-constint))
        (declare (ignorable __function__))
        (vl-ps-seq (vl-print "{\"tag\": ")
                   (jp-sym ':vl-constint)
                   (vl-print ", ")
                   (vl-print-str "\"origwidth\": ")
                   (jp-nat (vl-constint->origwidth x))
                   (vl-println? ", ")
                   (vl-print-str "\"value\": ")
                   (jp-bignat (vl-constint->value x))
                   (vl-println? ", ")
                   (vl-print-str "\"origtype\": ")
                   (vl-jp-exprtype (vl-constint->origtype x))
                   (vl-println? ", ")
                   (vl-print-str "\"wasunsized\": ")
                   (jp-bool (vl-constint->wasunsized x))
                   (vl-println? "}"))))