[silver:langutil:pp]

Contents of [silver:langutil:pp]:

Defined in this grammar:

fun ppConcat   (Document ::= ds::[Document] )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 34.

Concatenates a list of fragments into one fragment.


fun ppImplode   (Document ::= sep::Document ds::[Document] )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 42.

Intersperse a separator fragment between a list of fragments. e.g. implode(text(", “), list)


fun terminate   (Document ::= sep::Document ds::[Document] )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 51.

Introduce a separator fragment after every element of a list of fragments. Including the last.


fun initiate   (Document ::= sep::Document ds::[Document] )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 60.

Introduce a separator fragment before every element of a list of fragments. Including the first.


fun nestlines   (Document ::= n::Integer inner::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 70.

Insert lines before and after the inner fragment, with proper nesting. (That is, usually you want the first line inside the nest, but the second OUTSIDE the nest.)


Below this line: text Document ::= String cat Document ::= Document Document line Document ::= group Document ::= Document nest Document ::= Integer Document notext Document ::= box Document ::= Document realLine Document ::=


Some notes on deciphering all this:

in/out Position is some hypothetical value that’s part of the “scanning process” that doesn’t represent real horizontal position.

in/out Dq is a deque that represent all current “pending” groups, top to bottom. It’s a deque because we might “decide” groups higher up in the tree, as well as at the bottom. Wholy a part of the “scanning process.”

in/out CHorizontals is a list of H/V values that will be consumed by groups during the “printing process.”

in/out Remaining records real horizontal position of the “printing process.” (Also peeked at by the scanning process)

horizontals is the initially produced H/V values by the “scanning process.” It’s essentially a list of booleans produced by a pre-order scan of the tree, meant to be consumed by a pre-order scan of the tree.


abstract production text   (top::Document ::= s::String )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 151.

Literal text. (Do not use with newlines!)


abstract production cat   (top::Document ::= d1::Document d2::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 168.

Concatenate two documents.


abstract production line   (top::Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 194.

Either a space, or a linebreak plus indentation. The behavior of EVERY line in a group is identical.


abstract production group   (top::Document ::= d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 213.

Does nothing but control the behavior of all lines that have this group as their closest enclosing group.


abstract production nest   (top::Document ::= depth::Integer d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 239.

Increase the indentation level (but does not directly indent itself!)


class Show

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 12.

Show represents types that can be rendered as formatted (Document) strings.

For nonterminals, this class should typically be implemented by defining the pp attribute.

Minimal complete definition: pp


pp :: => (Document ::= a)

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 16.

Pretty-print a value of type a into a Document representation.


show :: => (String ::= Integer a) (has default)

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 21.

Pretty-print a value of type a as a String with a desired maximum line width.

function showDoc   (String ::= width::Integer d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 6.

(Undocumented.)


instance Semigroup Document

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 22.

(Undocumented.)


instance Semigroup Document.append

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 23.

(Undocumented.)


instance Monoid Document

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 26.

(Undocumented.)


instance Monoid Document.mempty

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 27.

(Undocumented.)


instance Monoid Document.concat

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 28.

(Undocumented.)


fun groupnest   (Document ::= n::Integer inner::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 71.

(Undocumented.)


fun groupnestlines   (Document ::= n::Integer inner::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 72.

(Undocumented.)


fun softbreak   (Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 74.

(Undocumented.)


fun space   (Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 77.

(Undocumented.)


fun semi   (Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 78.

(Undocumented.)


fun comma   (Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 79.

(Undocumented.)


fun braces   (Document ::= d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 80.

(Undocumented.)


fun parens   (Document ::= d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 81.

(Undocumented.)


fun brackets   (Document ::= d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 82.

(Undocumented.)


nonterminal Document

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 93.

(Undocumented.)


inherited attribute indent :: Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 102.

(Undocumented.)


inherited attribute width :: Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 103.

(Undocumented.)


inherited attribute inPosition :: Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 108.

(Undocumented.)


inherited attribute inDq :: dq:Deque<Pair<Integer [Boolean]>>

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 109.

(Undocumented.)


synthesized attribute outPosition :: Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 110.

(Undocumented.)


synthesized attribute outDq :: dq:Deque<Pair<Integer [Boolean]>>

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 111.

(Undocumented.)


synthesized attribute horizontals :: [Boolean]

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 113.

(Undocumented.)


inherited attribute inCHorizontals :: [Boolean]

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 116.

(Undocumented.)


inherited attribute inRemaining :: Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 117.

(Undocumented.)


synthesized attribute outCHorizontals :: [Boolean]

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 118.

(Undocumented.)


synthesized attribute outRemaining :: Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 119.

(Undocumented.)


synthesized attribute result :: String

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 121.

(Undocumented.)


abstract production notext   (top::Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 246.

(Undocumented.)


abstract production box   (top::Document ::= d::Document )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 252.

(Undocumented.)


abstract production realLine   (top::Document ::= )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 270.

(Undocumented.)


function prune   (Pair<dq:Deque<Pair<Integer [Boolean]>> [Boolean]> ::= p::Integer q::dq:Deque<Pair<Integer [Boolean]>> )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 289.

(Undocumented.)


function enter   (dq:Deque<Pair<Integer [Boolean]>> ::= p::Integer q::dq:Deque<Pair<Integer [Boolean]>> )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 301.

(Undocumented.)


function leave   (Pair<dq:Deque<Pair<Integer [Boolean]>> [Boolean]> ::= p::Integer q::dq:Deque<Pair<Integer [Boolean]>> )

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Document.sv line 307.

(Undocumented.)


instance Show a

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 26.

(Undocumented.)


instance Show a.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 27.

(Undocumented.)


instance Show Decorated a with i

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 30.

(Undocumented.)


instance Show Decorated a with i.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 31.

(Undocumented.)


instance Show Document

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 35.

(Undocumented.)


instance Show Document.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 36.

(Undocumented.)


instance Show Decorated Document with i

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 39.

(Undocumented.)


instance Show Decorated Document with i.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 40.

(Undocumented.)


instance Show Integer

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 44.

(Undocumented.)


instance Show Integer.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 45.

(Undocumented.)


instance Show Float

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 48.

(Undocumented.)


instance Show Float.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 49.

(Undocumented.)


instance Show Boolean

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 52.

(Undocumented.)


instance Show Boolean.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 53.

(Undocumented.)


instance Show String

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 56.

(Undocumented.)


instance Show String.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 57.

(Undocumented.)


instance Show [a]

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 60.

(Undocumented.)


instance Show [a].pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 61.

(Undocumented.)


instance Show (a,b) {#instance_Show__a,b_}

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 65.

(Undocumented.)


instance Show (a,b).pp {#instance_Show__a,b_.pp}

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 66.

(Undocumented.)


class ShowTuple

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 69.

(Undocumented.)


class ShowTuple.ppTuple :: => (Document ::= a)

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 70.

(Undocumented.)


instance ShowTuple (a,b) {#instance_ShowTuple__a,b_}

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 73.

(Undocumented.)


instance ShowTuple (a,b).ppTuple {#instance_ShowTuple__a,b_.ppTuple}

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 74.

(Undocumented.)


instance ShowTuple a

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 79.

(Undocumented.)


instance ShowTuple a.ppTuple

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 80.

(Undocumented.)


instance Show ()

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 83.

(Undocumented.)


instance Show ().pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 84.

(Undocumented.)


instance Show Maybe<a>

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 89.

(Undocumented.)


instance Show Maybe<a>.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 90.

(Undocumented.)


instance Show Either<a b>

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 97.

(Undocumented.)


instance Show Either<a b>.pp

Contained in grammar [silver:langutil:pp]. Defined at silver/langutil/pp/Show.sv line 98.

(Undocumented.)