Class DisplayFormat

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class DisplayFormat
    extends gnu.kawa.format.GenericFormat
    Handle formatted output for Lisp-like languages.
    See Also:
    Serialized Form
    • Field Detail

      • standardFormat

        public static gnu.kawa.format.GenericFormat standardFormat
      • outBase

        public static final ThreadLocation outBase
        Fluid parameter to specify default output base for printing rationals.
      • outRadix

        public static final ThreadLocation outRadix
        True if we should print a radix indicator when printing rationals. The default is no; otherwise we follow Common Lisp conventions.
      • schemeDisplayFormat

        public static final DisplayFormat schemeDisplayFormat
      • schemeWriteSimpleFormat

        public static final DisplayFormat schemeWriteSimpleFormat
      • schemeWriteFormat

        public static final DisplayFormat schemeWriteFormat
      • schemeWriteSharedFormat

        public static final DisplayFormat schemeWriteSharedFormat
      • checkSharing

        public int checkSharing
        Controls whether we check for sharing and cycles. 1: check for sharing; 0: check for cycles: -1: no checking.
    • Constructor Detail

      • DisplayFormat

        public DisplayFormat​(boolean readable,
                             char language)
        Create a new instance.
        Parameters:
        readable - if output should be formatted so it could be read back in again, for example strings shoudl be quoted.
        language - the programming language style to use, where 'S' is Scheme, 'C' is Common Lisp, and 'E' is Emacs Lisp.
    • Method Detail

      • getEmacsLispFormat

        public static DisplayFormat getEmacsLispFormat​(boolean readable)
      • getCommonLispFormat

        public static DisplayFormat getCommonLispFormat​(boolean readable)
      • getSchemeFormat

        public static DisplayFormat getSchemeFormat​(boolean readable)
      • getReadableOutput

        public boolean getReadableOutput()
        Description copied from class: gnu.kawa.format.AbstractFormat
        True if output should be easy to (machine-) read. I.e. is this format like Scheme 'write' rather than 'display'.
        Overrides:
        getReadableOutput in class gnu.kawa.format.AbstractFormat
      • textIsCopied

        public boolean textIsCopied()
        Description copied from class: gnu.kawa.format.AbstractFormat
        True if strings/characters are written without escape or quoting.
        Overrides:
        textIsCopied in class gnu.kawa.format.AbstractFormat
      • writeBoolean

        public void writeBoolean​(boolean v,
                                 Consumer out)
        Overrides:
        writeBoolean in class gnu.kawa.format.AbstractFormat
      • writeBoolean

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeBoolean​(Object v,
                                                                                 gnu.kawa.format.AbstractFormat f,
                                                                                 Consumer out)
      • writeChar

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeChar​(Object v,
                                                                              gnu.kawa.format.AbstractFormat f,
                                                                              Consumer out)
      • writeRational

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeRational​(Object obj,
                                                                                  gnu.kawa.format.AbstractFormat format,
                                                                                  Consumer out)
      • writeChar

        public static void writeChar​(int v,
                                     boolean readable,
                                     char language,
                                     Consumer out)
      • writeList

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeList​(Object list,
                                                                              gnu.kawa.format.AbstractFormat format,
                                                                              Consumer out)
        Format a list. Try to find shared structures in a list. To accomplish this, each subobject is hashed to the idhash, which is used later to determine whether we've seen a subobject before. There is an added complication when you consider cases like this: '((b . #1=(a . z)) 3) It is not known in advance that the printer will have to emit an extra ')' after the '(a . z) pair. Every time we CDR further into the list, we push a position marker onto a stack. Once we've examined the tail of this sublist, we pop all the posn markers off and tell the pretty printer that it might have to emit an extra ')' if the corresponding posn marker becomes active.
        Parameters:
        list - The list on which the method CDR's, termination occurs when this becomes a non-pair or the empty list
        out - The output port that is responsible for the pretty printing
      • writeArray

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeArray​(Object value,
                                                                               gnu.kawa.format.AbstractFormat format,
                                                                               Consumer out)
      • writeRange

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeRange​(Object value,
                                                                               gnu.kawa.format.AbstractFormat format,
                                                                               Consumer out)
      • writeJavaArray

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeJavaArray​(Object value,
                                                                                   gnu.kawa.format.AbstractFormat format,
                                                                                   Consumer out)
      • writeSequence

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeSequence​(Object value,
                                                                                  gnu.kawa.format.AbstractFormat format,
                                                                                  Consumer out)
      • writeValues

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeValues​(Object value,
                                                                                gnu.kawa.format.AbstractFormat format,
                                                                                Consumer out)
      • writePrintableConsumable

        public static gnu.kawa.format.GenericFormat.TryFormatResult writePrintableConsumable​(Object value,
                                                                                             gnu.kawa.format.AbstractFormat format,
                                                                                             Consumer out)
      • writeObject

        public void writeObject​(Object obj,
                                Consumer out)
        Overrides:
        writeObject in class gnu.kawa.format.GenericFormat
      • writeObjectDefault

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeObjectDefault​(Object obj,
                                                                                       gnu.kawa.format.AbstractFormat format,
                                                                                       Consumer out)
      • writeCharSeq

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeCharSeq​(Object value,
                                                                                 gnu.kawa.format.AbstractFormat format,
                                                                                 Consumer out)
      • writeEnum

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeEnum​(Object value,
                                                                              gnu.kawa.format.AbstractFormat format,
                                                                              Consumer out)
      • writeSymbol

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeSymbol​(Object value,
                                                                                gnu.kawa.format.AbstractFormat format,
                                                                                Consumer out)
      • writePicture

        public static gnu.kawa.format.GenericFormat.TryFormatResult writePicture​(Object value,
                                                                                 gnu.kawa.format.AbstractFormat format,
                                                                                 Consumer out)
      • writeKNode

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeKNode​(Object value,
                                                                               gnu.kawa.format.AbstractFormat format,
                                                                               Consumer out)
      • writePromise

        public static gnu.kawa.format.GenericFormat.TryFormatResult writePromise​(Object value,
                                                                                 gnu.kawa.format.AbstractFormat format,
                                                                                 Consumer out)
      • writeURI

        public static gnu.kawa.format.GenericFormat.TryFormatResult writeURI​(Object value,
                                                                             gnu.kawa.format.AbstractFormat format,
                                                                             Consumer out)