atproto_sdl/parser/types
Parses type expressions, field lists, and parameter lists: the
mutually recursive cluster of the grammar (a type can be an inline
object of fields; a field has a type), kept in one module because
Gleam forbids import cycles. Union !-closed markers glue to the
last member (a | b!); parens spell single-member and required
unions (see parse_paren_union).
Values
pub fn parse_fields(
tokens: List(#(token.Token, token.Span)),
acc: List(tree.Field),
) -> Result(
#(List(tree.Field), List(#(token.Token, token.Span))),
error.ParseError,
)
pub fn parse_params(
tokens: List(#(token.Token, token.Span)),
acc: List(tree.Field),
) -> Result(
#(List(tree.Field), List(#(token.Token, token.Span))),
error.ParseError,
)
pub fn parse_type(
tokens: List(#(token.Token, token.Span)),
) -> Result(
#(tree.SType, List(#(token.Token, token.Span))),
error.ParseError,
)