Class DisplayFormat

java.lang.Object
java.text.Format
gnu.kawa.format.AbstractFormat
gnu.kawa.format.GenericFormat
gnu.kawa.functions.DisplayFormat
All Implemented Interfaces:
Serializable, Cloneable

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

    • 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 Details

    • 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 Details

    • 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)