DeepScope
Dokka 2.2.0 generates this reference of the Kotlin spec builder during each site build from the Kotlin sources, and its summary lists every class and function. The guide shows the builder in use, the Java builder's reference covers the handles, types and expressions it shares, and the extensions read the data.
Functions
A capture of a float, as the integer one.
A capture of an integer, for a line pattern: val n by capture(atLeast(1)) names the entry after the property, or after name if given. The handle in a pattern prints {n:1..}.
A capture of an integer or float, as the integer one.
A capture of a string, as the integer one.
type name = type, a named float type.
type name = type, a named integer type.
type name = type, a named number type.
type name = type, a named string type.
else if:type, the declaration of the name if as the else branch, as Iris.elseReadIf.
Declares an entry of any type and depth that a later statement defines.
Declares a float entry at depth 0 that a later statement defines.
Declares an integer entry at depth 0 that a later statement defines, as Iris.forward.
Declares an integer or float entry at depth 0 that a later statement defines.
Declares a string entry at depth 0 that a later statement defines; forwardString("_") is the entry that store _ keeps.
if condition { ... }, whose definitions may be absent.
let x = value through a handle, as Iris.let.
let _ = value, which evaluates value without storing it.
let name = value, whose type and depth the data decide.
let name = value, a computed float at this block's depth.
let name = value, a computed integer at this block's depth.
let name = value, a computed integer or float at this block's depth.
let name = value, a computed string at this block's depth.
x: type until end, a list, as Iris.list.
_: type until end, which reads a list and keeps nothing.
A capture of a float that may be absent.
A capture of an integer that may be absent, such as one in an optional arm.
A capture of an integer or float that may be absent.
A capture of a string that may be absent.
param p through a handle, as Iris.param.
param name, whose value and type the caller decides.
param p = default through a handle, as Iris.param.
param name = default, a float.
param name = default, an integer.
param name = default, an integer or float.
param name = default, a string.
x: type through a handle, for a type with dimensions or a name defined elsewhere, as Iris.read.
_: type, which reads a value and keeps nothing.
name: type, a float at this block's depth.
name: type, an integer at this block's depth.
name: type, an integer or float at this block's depth.
name: type, a string at this block's depth.
repeat count { ... }. The body's receiver is one level deeper, and its record is record, which names the records for projection and comprehensions.
repeat count { ... }, as the other repeat.
repeat until "end" ... { ... }, with an optional store, as until makes it.
repeat until eof { ... }.
sections until ... skip other { ... }, with the clauses as arguments.
let x = value through a dynamic handle.
let x = value through a handle, keeping its type and depth.
let x = value through a handle, keeping its type and depth, as Iris.set.
Declares a name that is deliberately left undefined, as Iris.undefined.