Home
kdl-roc
Canonical
print
print_pretty
Indent
Document
value
node
Document
Annotation
Node
is_eq
Prop
Value
Sign
Fraction
Exponent
Parts
Decimal
Body
Kdl
parse
Refusal
to_str
Refusal
Or
Canonical
.
print
:
Document
->
Str
Canonical
.
print_pretty
:
Document
,
Indent
->
Str
Canonical
.
Indent
: [
Spaces
(
U64
),
Tabs
(
U64
)]
Document
.
value
:
Body
->
Value
Document
.
node
:
Str
,
List
(
Value
),
List
(
Prop
)
->
Node
Document
.
Document
:
List
(
Node
)
Document
.
Annotation
: [
Untyped
,
Typed
(
Str
)]
Document
.
Node
:= { ty :
Annotation
, name :
Str
, args :
List
(
Value
), props :
List
(
Prop
), children :
List
(
Node
) }
Document.Node
.
is_eq
: _
Document
.
Prop
: { key :
Str
, value :
Value
}
Document
.
Value
: { ty :
Annotation
, body :
Body
}
Document
.
Sign
: [
Positive
,
Negative
]
Document
.
Fraction
: [
NoFraction
,
Fraction
(
Str
)]
Document
.
Exponent
: [
NoExponent
,
Exponent
({ sign :
Sign
, digits :
Str
})]
Document
.
Parts
: { sign :
Sign
, integer :
Str
, fraction :
Fraction
, exponent :
Exponent
}
Document
.
Decimal
: [
Finite
(
Parts
),
Infinite
(
Sign
),
NotANumber
]
Document
.
Body
: [
Text
(
Str
),
Integer
(
I128
),
Decimal
(
Decimal
),
Boolean
(
Bool
),
Null
]
Kdl
.
parse
:
Str
->
Try
(
Document
, [
Refused
(
Refusal
), ..])
Refusal
.
to_str
:
Refusal
->
Str
Refusal
.
Refusal
: [
UnexpectedCharacterAfterToken
,
RadixDigitExpected
,
FractionNeedsDigit
,
ExponentNeedsDigit
,
NumberNeedsIntegerDigit
,
IdentifierExpected
,
KeywordMustBeQuoted
(
Str
),
UnicodeEscapeNotAScalar
,
UnicodeEscapeTooLong
,
UnterminatedUnicodeEscape
,
UnknownEscape
,
UnterminatedString
,
IllegalCharacterInString
,
UnterminatedMultilineString
,
MultilineNeedsNewlineAfterOpener
,
RawStringExpectedAfterHash
,
RawMultilineNeedsNewlineAfterOpener
,
UnterminatedRawString
,
NewlineInSingleLineRawString
,
MultilineFinalLineNotBlank
,
MultilineIndentationMismatch
,
UnterminatedBlockComment
,
EsclineNeedsLineEnd
,
TrailingContent
,
UnclosedAnnotation
,
SlashdashNeedsChildrenBlock
,
SecondChildrenBlock
,
ChildrenBlockOrNodeEndExpected
,
UnclosedChildrenBlock
]
Refusal
.
Or
:
Try
(
a
, [
Refused
(
Refusal
)])