Package gnu.kawa.functions
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:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class gnu.kawa.format.GenericFormat
gnu.kawa.format.GenericFormat.Entry, gnu.kawa.format.GenericFormat.MethodEntry, gnu.kawa.format.GenericFormat.TryFormatResult
-
Nested classes/interfaces inherited from class gnu.kawa.format.AbstractFormat
gnu.kawa.format.AbstractFormat.FormatConsumer
-
Nested classes/interfaces inherited from class java.text.Format
Format.Field
-
-
Field Summary
Fields Modifier and Type Field Description int
checkSharing
Controls whether we check for sharing and cycles.static ThreadLocation
outBase
Fluid parameter to specify default output base for printing rationals.static ThreadLocation
outRadix
True if we should print a radix indicator when printing rationals.static DisplayFormat
schemeDisplayFormat
static DisplayFormat
schemeWriteFormat
static DisplayFormat
schemeWriteSharedFormat
static DisplayFormat
schemeWriteSimpleFormat
static gnu.kawa.format.GenericFormat
standardFormat
-
Constructor Summary
Constructors Constructor Description DisplayFormat(boolean readable, char language)
Create a new instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DisplayFormat
getCommonLispFormat(boolean readable)
static DisplayFormat
getEmacsLispFormat(boolean readable)
boolean
getReadableOutput()
True if output should be easy to (machine-) read.static DisplayFormat
getSchemeFormat(boolean readable)
boolean
textIsCopied()
True if strings/characters are written without escape or quoting.static gnu.kawa.format.GenericFormat.TryFormatResult
writeArray(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
void
writeBoolean(boolean v, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeBoolean(Object v, gnu.kawa.format.AbstractFormat f, Consumer out)
static void
writeChar(int v, boolean readable, char language, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeChar(Object v, gnu.kawa.format.AbstractFormat f, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeCharSeq(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeEnum(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeJavaArray(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeKNode(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeList(Object list, gnu.kawa.format.AbstractFormat format, Consumer out)
Format a list.void
writeObject(Object obj, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeObjectDefault(Object obj, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writePicture(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writePrintableConsumable(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writePromise(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeRange(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeRational(Object obj, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeSequence(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeSymbol(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeURI(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
static gnu.kawa.format.GenericFormat.TryFormatResult
writeValues(Object value, gnu.kawa.format.AbstractFormat format, Consumer out)
-
Methods inherited from class gnu.kawa.format.GenericFormat
add, add, addInvalidatingCache, invalidateCache, tryFormat
-
Methods inherited from class gnu.kawa.format.AbstractFormat
endAttribute, endElement, format, format, makeConsumer, parseObject, startAttribute, startElement, write, write, writeDouble, writeFloat, writeInt, writeLong, writeObject, writeObject
-
Methods inherited from class java.text.Format
clone, format, formatToCharacterIterator, parseObject
-
-
-
-
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 classgnu.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 classgnu.kawa.format.AbstractFormat
-
writeBoolean
public void writeBoolean(boolean v, Consumer out)
- Overrides:
writeBoolean
in classgnu.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 listout
- 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 classgnu.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)
-
-