Modules · Data · Code

Code

Program's own code as data. Code models a running Program in two forms: the recursive Code.Language.Json.Value tree that mirrors the JSON command form every program is written in, and the serialised syntax tree under Code.Language.Program.Structure — modules, functions, records, unions, and the commands inside a body. Reader functions decode JSON into these structures, a stringifier serialises them back, and the Code.Parse helpers thread parsing state through a rule. Every value is reactive, so a decoded tree recomputes when its source text changes.

Contents

Types

Functions

Types

Code.Language.Json.Value

A JSON value: text, a number, a boolean, an array of values, or an object mapping names to values. Arrays and objects nest, so the type is recursive.

Options

OptionTypeDescription
booleanLogic.MaybeThe boolean case.
numberMaths.RealThe number case.
textTextThe text case.
arrayCollection.Array(Code.Language.Json.Value)An ordered array of nested values.
objectCollection.Map(Code.Language.Json.Value)An object mapping names to nested values.

Definition

TYPE Code.Language.Json.Value
  OPTION Logic.Maybe boolean
  OPTION Maths.Real number
  OPTION Text text
  OPTION Collection.Array(Code.Language.Json.Value) array
  OPTION Collection.Map(Code.Language.Json.Value) object

Example

LET Code.Language.Json.Value payload = Code.Language.Json.FromObjectFromStringMap fields
Wraps a map of text fields as a JSON object value.

Code.Language.Program.Structure.Argument

An argument in a function call: a reference to a value, an inline closure, or an inline constant.

Options

OptionTypeDescription
referenceTextA reference to a value by name.
closureCode.Language.Program.Structure.FunctionAn inline closure function.
inlineConstantCode.Language.Program.Structure.ConstantValueAn inline literal constant.

Definition

TYPE Code.Language.Program.Structure.Argument
  OPTION Text reference
  OPTION Code.Language.Program.Structure.Function closure
  OPTION Code.Language.Program.Structure.ConstantValue inlineConstant

Code.Language.Program.Structure.Assignment

An assignment (=) command: a named, typed local bound to a computed value.

Fields

FieldTypeDescription
nameTextThe local name.
typeTextThe declared type.
valueCode.Language.Program.Structure.AssignmentValueThe value bound to the name.

Definition

TYPE Code.Language.Program.Structure.Assignment
  FIELD Text name
  FIELD Text type
  FIELD Code.Language.Program.Structure.AssignmentValue value

Code.Language.Program.Structure.AssignmentValue

The right-hand side of an assignment: a reference to a value, or a function call.

Options

OptionTypeDescription
referenceTextA reference to a value by name.
callCode.Language.Program.Structure.FunctionCallA function call.

Definition

TYPE Code.Language.Program.Structure.AssignmentValue
  OPTION Text reference
  OPTION Code.Language.Program.Structure.FunctionCall call

Code.Language.Program.Structure.BodyCommand

One command inside a function body: a comment, state, constant, assignment, call, or reverse.

Options

OptionTypeDescription
commentTextA comment line.
stateCode.Language.Program.Structure.StateA state declaration.
constantCode.Language.Program.Structure.ConstantA constant declaration.
assignmentCode.Language.Program.Structure.AssignmentAn assignment.
callCode.Language.Program.Structure.FunctionCallA function call.
reverseCode.Language.Program.Structure.ReverseA reverse command.

Definition

TYPE Code.Language.Program.Structure.BodyCommand
  OPTION Text comment
  OPTION Code.Language.Program.Structure.State state
  OPTION Code.Language.Program.Structure.Constant constant
  OPTION Code.Language.Program.Structure.Assignment assignment
  OPTION Code.Language.Program.Structure.FunctionCall call
  OPTION Code.Language.Program.Structure.Reverse reverse

Code.Language.Program.Structure.Constant

A constant (#) command: a named, typed constant with its literal value.

Fields

FieldTypeDescription
nameTextThe constant name.
typeTextThe declared type.
valueCode.Language.Program.Structure.ConstantValueThe literal value.

Definition

TYPE Code.Language.Program.Structure.Constant
  FIELD Text name
  FIELD Text type
  FIELD Code.Language.Program.Structure.ConstantValue value

Code.Language.Program.Structure.ConstantValue

A literal constant value: text, integer, real, boolean, or none.

Options

OptionTypeDescription
textTextA text literal.
integerMaths.IntegerAn integer literal.
realMaths.RealA real literal.
booleanLogic.MaybeA boolean literal.
noneCollection.VoidThe empty (none) literal.

Definition

TYPE Code.Language.Program.Structure.ConstantValue
  OPTION Text text
  OPTION Maths.Integer integer
  OPTION Maths.Real real
  OPTION Logic.Maybe boolean
  OPTION Collection.Void none

Code.Language.Program.Structure.Direction

The direction of an input or return: forward, reverse, or binding.

Options

OptionTypeDescription
forwardCollection.VoidThe forward case.
reverseCollection.VoidThe reverse case.
bindingCollection.VoidThe binding case.

Definition

TYPE Code.Language.Program.Structure.Direction
  OPTION Collection.Void forward
  OPTION Collection.Void reverse
  OPTION Collection.Void binding

Code.Language.Program.Structure.Field

A named, typed field within a record or union type.

Fields

FieldTypeDescription
nameTextThe field name.
typeTextThe field type.

Definition

TYPE Code.Language.Program.Structure.Field
  FIELD Text name
  FIELD Text type

Code.Language.Program.Structure.Function

A function or native declaration: its name, generics, inputs, body, and optional return.

Fields

FieldTypeDescription
nameTextThe function name.
genericTypesCollection.Array(Text)The generic type parameter names.
inputsCollection.Array(Code.Language.Program.Structure.Input)The declared inputs.
bodyCode.Language.Program.Structure.FunctionBodyThe body or native implementations.
optionalReturnCollection.Optional(Code.Language.Program.Structure.Return)The return declaration, if any.

Definition

TYPE Code.Language.Program.Structure.Function
  FIELD Text name
  FIELD Collection.Array(Text) genericTypes
  FIELD Collection.Array(Code.Language.Program.Structure.Input) inputs
  FIELD Code.Language.Program.Structure.FunctionBody body
  FIELD Collection.Optional(Code.Language.Program.Structure.Return) optionalReturn

Code.Language.Program.Structure.FunctionBody

A function body: either a list of commands, or a map of per-platform native implementations.

Options

OptionTypeDescription
bodyCollection.Array(Code.Language.Program.Structure.BodyCommand)The command list for a Program function.
implementationsCollection.Array(Code.Language.Program.Structure.PlatformImpl)The per-platform code for a native function.

Definition

TYPE Code.Language.Program.Structure.FunctionBody
  OPTION Collection.Array(Code.Language.Program.Structure.BodyCommand) body
  OPTION Collection.Array(Code.Language.Program.Structure.PlatformImpl) implementations

Code.Language.Program.Structure.FunctionCall

A call to a function, with its name, type arguments, and arguments.

Fields

FieldTypeDescription
functionNameTextThe called function name.
typeArgumentsCollection.Array(Text)The type arguments.
argumentsCollection.Array(Code.Language.Program.Structure.Argument)The call arguments.

Definition

TYPE Code.Language.Program.Structure.FunctionCall
  FIELD Text functionName
  FIELD Collection.Array(Text) typeArguments
  FIELD Collection.Array(Code.Language.Program.Structure.Argument) arguments

Code.Language.Program.Structure.Input

A function input: its name, type, and direction.

Fields

FieldTypeDescription
nameTextThe input name.
typeTextThe input type.
directionCode.Language.Program.Structure.DirectionThe input direction.

Definition

TYPE Code.Language.Program.Structure.Input
  FIELD Text name
  FIELD Text type
  FIELD Code.Language.Program.Structure.Direction direction

Code.Language.Program.Structure.Module

A module declaration: its name and its contents.

Fields

FieldTypeDescription
nameTextThe module name.
contentsCollection.Array(Code.Language.Program.Structure.ModuleContent)The module members.

Definition

TYPE Code.Language.Program.Structure.Module
  FIELD Text name
  FIELD Collection.Array(Code.Language.Program.Structure.ModuleContent) contents

Code.Language.Program.Structure.ModuleContent

One member of a module: a comment, record type, union type, function, native, or native type.

Options

OptionTypeDescription
commentTextA comment line.
dataTypeCode.Language.Program.Structure.RecordA record type declaration.
unionTypeCode.Language.Program.Structure.RecordA union type declaration.
functionCode.Language.Program.Structure.FunctionA Program function.
nativeCode.Language.Program.Structure.FunctionA native function.
nativeTypeCode.Language.Program.Structure.NativeTypeA native type.

Definition

TYPE Code.Language.Program.Structure.ModuleContent
  OPTION Text comment
  OPTION Code.Language.Program.Structure.Record dataType
  OPTION Code.Language.Program.Structure.Record unionType
  OPTION Code.Language.Program.Structure.Function function
  OPTION Code.Language.Program.Structure.Function native
  OPTION Code.Language.Program.Structure.NativeType nativeType

Code.Language.Program.Structure.NativeType

A native type declaration: its name, type parameters, and per-platform implementations.

Fields

FieldTypeDescription
nameTextThe type name.
typeParamNamesCollection.Array(Text)The type parameter names.
implementationsCollection.Array(Code.Language.Program.Structure.PlatformImpl)The per-platform native types.

Definition

TYPE Code.Language.Program.Structure.NativeType
  FIELD Text name
  FIELD Collection.Array(Text) typeParamNames
  FIELD Collection.Array(Code.Language.Program.Structure.PlatformImpl) implementations

Code.Language.Program.Structure.PlatformImpl

A single platform's native implementation: the platform name and its code.

Fields

FieldTypeDescription
platformTextThe platform name, such as dart or rust.
codeTextThe native code for that platform.

Definition

TYPE Code.Language.Program.Structure.PlatformImpl
  FIELD Text platform
  FIELD Text code

Code.Language.Program.Structure.Program

A whole program: its ordered top-level contents.

Fields

FieldTypeDescription
contentsCollection.Array(Code.Language.Program.Structure.ProgramContent)The top-level program items.

Definition

TYPE Code.Language.Program.Structure.Program
  FIELD Collection.Array(Code.Language.Program.Structure.ProgramContent) contents

Code.Language.Program.Structure.ProgramContent

One top-level program item: a comment, a module, or a run block.

Options

OptionTypeDescription
commentTextA comment line.
moduleCode.Language.Program.Structure.ModuleA module.
runCollection.Array(Code.Language.Program.Structure.BodyCommand)A run block of commands.

Definition

TYPE Code.Language.Program.Structure.ProgramContent
  OPTION Text comment
  OPTION Code.Language.Program.Structure.Module module
  OPTION Collection.Array(Code.Language.Program.Structure.BodyCommand) run

Code.Language.Program.Structure.Record

A record or union type declaration: its name, generics, and members.

Fields

FieldTypeDescription
nameTextThe type name.
genericTypesCollection.Array(Text)The generic type parameter names.
membersCollection.Array(Code.Language.Program.Structure.RecordBodyEntry)The fields or options.

Definition

TYPE Code.Language.Program.Structure.Record
  FIELD Text name
  FIELD Collection.Array(Text) genericTypes
  FIELD Collection.Array(Code.Language.Program.Structure.RecordBodyEntry) members

Code.Language.Program.Structure.RecordBodyEntry

One entry in a record or union body: a comment, a field, or a header separator.

Options

OptionTypeDescription
commentTextA comment line.
fieldCode.Language.Program.Structure.FieldA field or option.
headerCollection.VoidA header separator.

Definition

TYPE Code.Language.Program.Structure.RecordBodyEntry
  OPTION Text comment
  OPTION Code.Language.Program.Structure.Field field
  OPTION Collection.Void header

Code.Language.Program.Structure.Return

A function return: the returned variable name, type, and optional direction.

Fields

FieldTypeDescription
nameTextThe returned variable name.
typeTextThe return type.
optionalDirectionCollection.Optional(Code.Language.Program.Structure.Direction)The return direction, if any.

Definition

TYPE Code.Language.Program.Structure.Return
  FIELD Text name
  FIELD Text type
  FIELD Collection.Optional(Code.Language.Program.Structure.Direction) optionalDirection

Code.Language.Program.Structure.Reverse

A reverse (~) command: a name, type, setter pairs, and a body.

Fields

FieldTypeDescription
nameTextThe reverse name.
typeTextThe declared type.
settersCollection.Array(Code.Language.Program.Structure.SetterPair)The setter pairs.
bodyCollection.Array(Code.Language.Program.Structure.BodyCommand)The reverse body commands.

Definition

TYPE Code.Language.Program.Structure.Reverse
  FIELD Text name
  FIELD Text type
  FIELD Collection.Array(Code.Language.Program.Structure.SetterPair) setters
  FIELD Collection.Array(Code.Language.Program.Structure.BodyCommand) body

Code.Language.Program.Structure.SetterPair

A setter pair inside a reverse: an outer settable and the inner value written to it.

Fields

FieldTypeDescription
outerSettableTextThe outer settable reference.
innerValueTextThe inner value written to it.

Definition

TYPE Code.Language.Program.Structure.SetterPair
  FIELD Text outerSettable
  FIELD Text innerValue

Code.Language.Program.Structure.State

A state ($) command: a named, typed, optionally-lockable cell with an optional initial value.

Fields

FieldTypeDescription
nameTextThe state name.
typeTextThe declared type.
optionalInitialValueCollection.Optional(Code.Language.Json.Value)The initial value, if any.
lockableLogic.MaybeYes when the state is lockable.

Definition

TYPE Code.Language.Program.Structure.State
  FIELD Text name
  FIELD Text type
  FIELD Collection.Optional(Code.Language.Json.Value) optionalInitialValue
  FIELD Logic.Maybe lockable

Code.Parse.Result

The outcome of a parse rule: a success carrying a value, a no-match, or an error.

Generics

T — a generic type parameter.

Options

OptionTypeDescription
successCode.Parse.Result.Success(T)A successful parse.
noMatchCode.Parse.Result.NoMatchNo match at this position.
errorCode.Parse.Result.ErrorA parse error.

Definition

TYPE Code.Parse.Result<T>
  OPTION Code.Parse.Result.Success(T) success
  OPTION Code.Parse.Result.NoMatch noMatch
  OPTION Code.Parse.Result.Error error

Code.Parse.Result.Error

A parse error, carrying a message.

Fields

FieldTypeDescription
messageTextThe error message.

Definition

TYPE Code.Parse.Result.Error
  FIELD Text message

Code.Parse.Result.NoMatch

A parse rule that did not match, with an optional explanation.

Fields

FieldTypeDescription
optionalExplanationCollection.Optional(Text)Why it did not match, if given.

Definition

TYPE Code.Parse.Result.NoMatch
  FIELD Collection.Optional(Text) optionalExplanation

Code.Parse.Result.Success

A successful parse: the parsed value and the index where it ended.

Generics

T — a generic type parameter.

Fields

FieldTypeDescription
valueTThe parsed value.
endIndexMaths.IntegerThe index just past the match.

Definition

TYPE Code.Parse.Result.Success<T>
  FIELD T value
  FIELD Maths.Integer endIndex

Functions

Code.Language.Json.FromJsonArray

Decodes each element of a JSON array with a callback, gathering the results.

Generics

ElementType — a generic type parameter.

Parameters

NameTypeDescription
optionalJsonArrayUnionCollection.Optional(Code.Language.Json.Value)The array value to decode.

Callback

A callback that decodes one element (an optional JSON value) into an ElementType.

Returns

Returns Collection.Array(ElementType).

Code.Language.Json.FromObjectFromStringMap

Builds a JSON object value from a map of text values.

Parameters

NameTypeDescription
stringMapCollection.Map(Text)The map of text fields.

Returns

Returns Code.Language.Json.Value.

Code.Language.Json.GetArray

Reads a JSON value as an array, or an empty array.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.

Returns

Returns Collection.Array(Code.Language.Json.Value).

Code.Language.Json.GetArrayElement

Reads the element at an index of a JSON array, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The array value.
indexMaths.IntegerThe element index.
optionalDefaultValueCollection.Optional(Code.Language.Json.Value)Returned when the index is out of range.

Returns

Returns Collection.Optional(Code.Language.Json.Value).

Code.Language.Json.GetArrayLength

The number of elements in a JSON array, or zero.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The array value.

Returns

Returns Maths.Integer.

Code.Language.Json.GetBoolean

Reads a JSON value as a boolean, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.
defaultValueLogic.MaybeReturned when the value is not a boolean.

Returns

Returns Logic.Maybe.

Code.Language.Json.GetInteger

Reads a JSON value as an integer, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.
defaultValueMaths.IntegerReturned when the value is not a number.

Returns

Returns Maths.Integer.

Code.Language.Json.GetNumber

Reads a JSON value as a real number, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.
defaultValueMaths.RealReturned when the value is not a number.

Returns

Returns Maths.Real.

Code.Language.Json.GetObject

Reads a JSON value as an object, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.
defaultValueCollection.Map(Code.Language.Json.Value)Returned when the value is not an object.

Returns

Returns Collection.Map(Code.Language.Json.Value).

Code.Language.Json.GetObjectField

Reads a named field from a JSON object, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The object value.
fieldTextThe field name.
optionalDefaultValueCollection.Optional(Code.Language.Json.Value)Returned when the field is absent.

Returns

Returns Collection.Optional(Code.Language.Json.Value).

Code.Language.Json.GetString

Reads a JSON value as text, falling back to a default.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.
defaultValueTextReturned when the value is not text.

Returns

Returns Text.

Example

LET Text name = Code.Language.Json.GetString field "guest"
Reads a JSON field as text, defaulting to guest.

Code.Language.Json.OptionalGetArray

Reads a JSON value as an array, or nothing when it is not an array.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.

Returns

Returns Collection.Optional(Collection.Array(Code.Language.Json.Value)).

Code.Language.Json.OptionalGetArrayElement

Reads the element at an index of a JSON array, or nothing when out of range.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The array value.
indexMaths.IntegerThe element index.

Returns

Returns Collection.Optional(Code.Language.Json.Value).

Code.Language.Json.OptionalGetInteger

Reads a JSON value as an integer, or nothing when it is not a number.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.

Returns

Returns Collection.Optional(Maths.Integer).

Code.Language.Json.OptionalGetObject

Reads the object of a JSON value, or nothing when it is not an object.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.

Returns

Returns Collection.Optional(Collection.Map(Code.Language.Json.Value)).

Code.Language.Json.OptionalGetObjectField

Reads a named field from a JSON object, or nothing when absent.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The object value.
fieldTextThe field name.

Returns

Returns Collection.Optional(Code.Language.Json.Value).

Code.Language.Json.OptionalStringify

Serialises an optional JSON value to JSON text, or empty text when absent.

Parameters

NameTypeDescription
optionalInputCollection.Optional(Code.Language.Json.Value)The value to serialise, if present.

Returns

Returns Text.

Code.Language.Json.OptionalText

Reads the text of a JSON value, or nothing when it is not text.

Parameters

NameTypeDescription
optionalUnionCollection.Optional(Code.Language.Json.Value)The value to read.

Returns

Returns Collection.Optional(Text).

Code.Language.Json.Parse

Parses JSON text into a JSON value, or nothing when the text is invalid.

Parameters

NameTypeDescription
inputTextThe JSON text to parse.

Returns

Returns Collection.Optional(Code.Language.Json.Value).

Example

LET Collection.Optional(Code.Language.Json.Value) parsed = Code.Language.Json.Parse text
Parses JSON text, yielding nothing when the text is invalid.

Code.Language.Json.Stringify

Serialises a JSON value to its compact JSON text.

Parameters

NameTypeDescription
inputCode.Language.Json.ValueThe value to serialise.

Returns

Returns Text.

Example

LET Text json = Code.Language.Json.Stringify value
Serialises a JSON value to compact JSON text.

Code.Language.Program.Structure.Argument.FromJson

Builds a call argument from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Argument.

Code.Language.Program.Structure.Assignment.FromJson

Builds an assignment from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Assignment.

Code.Language.Program.Structure.AssignmentValue.FromJson

Builds an assignment value from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.AssignmentValue.

Code.Language.Program.Structure.BodyCommand.FromJson

Builds one body command from its JSON command form, dispatching on its tag.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.BodyCommand.

Code.Language.Program.Structure.Constant.FromJson

Builds a constant declaration from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Constant.

Code.Language.Program.Structure.ConstantValue.FromJson

Builds a literal constant value from its type name and JSON command form.

Parameters

NameTypeDescription
typeNameTextThe declared type name, which selects the literal kind.
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.ConstantValue.

Code.Language.Program.Structure.Direction.FromJson

Builds a direction from its JSON command form, defaulting to forward.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Direction.

Code.Language.Program.Structure.Field.FromJson

Builds a field from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Field.

Code.Language.Program.Structure.Function.FromJson

Builds a function or native declaration from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Function.

Code.Language.Program.Structure.FunctionBody.FromJson

Builds a function body from its JSON command form, choosing commands or native implementations.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.FunctionBody.

Code.Language.Program.Structure.FunctionCall.FromJson

Builds a function call from its JSON command form, reading fields from a start slot.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.
startSlotMaths.IntegerThe array slot at which the call's fields begin.

Returns

Returns Code.Language.Program.Structure.FunctionCall.

Code.Language.Program.Structure.Input.FromJson

Builds a function input from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Input.

Code.Language.Program.Structure.Module.FromJson

Builds a module from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Module.

Code.Language.Program.Structure.ModuleContent.FromJson

Builds one module member from its JSON command form, dispatching on its tag.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.ModuleContent.

Code.Language.Program.Structure.NativeType.FromJson

Builds a native type from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.NativeType.

Code.Language.Program.Structure.PlatformImpl.FromJson

Builds a per-platform implementation from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.PlatformImpl.

Code.Language.Program.Structure.Program.FromJson

Builds a whole program from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Program.

Example

LET Code.Language.Program.Structure.Program tree = Code.Language.Program.Structure.Program.FromJson json
Decodes a serialised program into its syntax tree.

Code.Language.Program.Structure.ProgramContent.FromJson

Builds one top-level program item from its JSON command form, dispatching on its tag.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.ProgramContent.

Code.Language.Program.Structure.Record.FromJson

Builds a record or union type from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Record.

Code.Language.Program.Structure.RecordBodyEntry.FromJson

Builds one record body entry from its JSON command form, dispatching on its tag.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.RecordBodyEntry.

Code.Language.Program.Structure.Return.FromJson

Builds a function return from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Return.

Code.Language.Program.Structure.Reverse.FromJson

Builds a reverse command from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.Reverse.

Code.Language.Program.Structure.SetterPair.FromJson

Builds a setter pair from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.SetterPair.

Code.Language.Program.Structure.State.FromJson

Builds a state declaration from its JSON command form.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Code.Language.Program.Structure.State.

Code.Language.Program.Structure.StringFromJson

Reads a JSON value as text, defaulting to empty.

Parameters

NameTypeDescription
optionalJsonElementCollection.Optional(Code.Language.Json.Value)The JSON command form to decode.

Returns

Returns Text.

Code.Parse.Context.WithInput

Runs a callback with a named input value bound in context, returning its result.

Generics

T — a generic type parameter.

Parameters

NameTypeDescription
nameTextThe context name to bind.
inputValueTThe value to bind.

Callback

A callback run while the input is bound; its result is returned.

Returns

Returns T.

Code.Parse.Context.WithMutable

Runs a callback with a named mutable value bound in context, returning its result.

Generics

T — a generic type parameter.

Parameters

NameTypeDescription
nameTextThe context name to bind.
initialValueTThe initial mutable value.

Callback

A callback run while the mutable is bound; its result is returned.

Returns

Returns T.

Code.Parse.State.GetIndex

The current parse index.

Returns

Returns Maths.Integer.

Code.Parse.State.GetValue

The value currently being parsed.

Generics

T — a generic type parameter.

Returns

Returns T.

Code.Parse.State.Set

Sets up the parse context (value, start index, and error slot) then runs a callback.

Generics

T — a generic type parameter.

Parameters

NameTypeDescription
valueTThe value being parsed.
initialIndexMaths.IntegerThe starting parse index.

Callback

A callback run with the parse state established; its result is returned.

Returns

Returns T.

Code.Parse.State.SetIndex

Moves the parse index to a new position.

Parameters

NameTypeDescription
indexMaths.IntegerThe new parse index.

Returns

Returns nothing.