• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
          • Atj
            • Atj-implementation
              • Atj-types
              • Atj-java-primitive-array-model
              • Atj-java-abstract-syntax
              • Atj-input-processing
              • Atj-java-pretty-printer
                • Jexpr-rank
                • Print-jexprs
                • Print-jchar
                • Print-jstatems+jblocks
                • Print-jclasses+jcmembers
                  • Print-jcbody-element-list
                  • Print-jcmember
                  • Print-jcbody-element
                  • Print-jclass
                • Jbinop-expected-ranks
                • Jexpr->rank
                • Jexpr-rank-<=
                • Print-jexpr
                • Print-optional-integer-type-suffix
                • Print-octdig/uscore-list
                • Print-oct-integer-literal
                • Print-jcunit
                • Print-hexdig/uscore-list
                • Print-hex-integer-literal
                • Print-decdig/uscore-list
                • Print-dec-integer-literal
                • Print-bindig/uscore-list
                • Print-bin-integer-literal
                • Print-integer-literal
                • Print-octdig/uscore
                • Print-jmethod
                • Print-jfield
                • Print-hexdig/uscore
                • Print-decdig/uscore
                • Print-bindig/uscore
                • Print-jclass-list
                • Print-jlocvar
                • Print-jliteral
                • Print-jcinitializer
                • Print-jline
                • Print-jimports
                • Print-jchars
                • Print-comma-sep
                • Print-jimport
                • Print-jbinop
                • Print-primitive-type
                • Print-jparam-list
                • Print-jlines-to-channel
                • Jexpr-rank-index
                • Atj-indent
                • Print-to-jfile
                • Print-jparam
                • Print-jaccess
                • Print-oct-digit
                • Print-junop
                • Print-jtype
                • Print-jresult
                • Print-hex-digit
                • Print-dec-digit
                • Print-bin-digit
                • Print-jline-blank
              • Atj-code-generation
              • Atj-java-primitives
              • Atj-java-primitive-arrays
              • Atj-type-macros
              • Atj-java-syntax-operations
              • Atj-fn
              • Atj-library-extensions
              • Atj-java-input-types
              • Atj-test-structures
              • Aij-notions
              • Atj-macro-definition
            • Atj-tutorial
          • Aij
          • Language
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Atj-java-pretty-printer

Print-jclasses+jcmembers

Pretty-print a class declaration or class member declaration.

These are mutually recursive because classes may be class members.

Definitions and Theorems

Function: print-jcmember

(defun print-jcmember (member indent-level)
  (declare (xargs :guard (and (jcmemberp member)
                              (natp indent-level))))
  (let ((__function__ 'print-jcmember))
    (declare (ignorable __function__))
    (jcmember-case
         member
         :field (list (print-jfield member.get indent-level))
         :method (print-jmethod member.get indent-level)
         :class (print-jclass member.get indent-level))))

Function: print-jcbody-element

(defun print-jcbody-element (body-element indent-level)
 (declare (xargs :guard (and (jcbody-element-p body-element)
                             (natp indent-level))))
 (let ((__function__ 'print-jcbody-element))
   (declare (ignorable __function__))
   (jcbody-element-case
        body-element
        :member (print-jcmember body-element.get indent-level)
        :init (print-jcinitializer body-element.get indent-level))))

Function: print-jcbody-element-list

(defun print-jcbody-element-list (body-elements indent-level)
  (declare (xargs :guard (and (jcbody-element-listp body-elements)
                              (natp indent-level))))
  (let ((__function__ 'print-jcbody-element-list))
    (declare (ignorable __function__))
    (cond ((endp body-elements) nil)
          (t (append (list (print-jline-blank))
                     (print-jcbody-element (car body-elements)
                                           indent-level)
                     (print-jcbody-element-list (cdr body-elements)
                                                indent-level))))))

Function: print-jclass

(defun print-jclass (class indent-level)
 (declare (xargs :guard (and (jclassp class)
                             (natp indent-level))))
 (let ((__function__ 'print-jclass))
  (declare (ignorable __function__))
  (b* (((jclass class) class)
       (modifiers (msg "~@0~@1~@2~@3~@4"
                       (print-jaccess class.access)
                       (if class.abstract? "abstract " "")
                       (if class.static? "static " "")
                       (if class.final? "final " "")
                       (if class.strictfp? "strictfp " ""))))
   (append
    (list
     (print-jline
      (msg
        "~@0class ~@1 ~@2{" modifiers class.name
        (if class.superclass? (msg "extends ~@0 " class.superclass?)
          ""))
      indent-level))
    (print-jcbody-element-list class.body (1+ indent-level))
    (list (print-jline "}" indent-level))))))

Theorem: return-type-of-print-jcmember.lines

(defthm return-type-of-print-jcmember.lines
  (b* ((?lines (print-jcmember member indent-level)))
    (msg-listp lines))
  :rule-classes :rewrite)

Theorem: return-type-of-print-jcbody-element.lines

(defthm return-type-of-print-jcbody-element.lines
  (b* ((?lines (print-jcbody-element body-element indent-level)))
    (msg-listp lines))
  :rule-classes :rewrite)

Theorem: return-type-of-print-jcbody-element-list.lines

(defthm return-type-of-print-jcbody-element-list.lines
  (b*
   ((?lines (print-jcbody-element-list body-elements indent-level)))
   (msg-listp lines))
  :rule-classes :rewrite)

Theorem: return-type-of-print-jclass.lines

(defthm return-type-of-print-jclass.lines
  (b* ((?lines (print-jclass class indent-level)))
    (msg-listp lines))
  :rule-classes :rewrite)

Subtopics

Print-jcbody-element-list
Pretty-print a sequence of class body declarations.
Print-jcmember
Pretty-print a class member declaration.
Print-jcbody-element
Pretty-print a class body declaration.
Print-jclass
Pretty-print a class declaration.