Plover.Protocol.Parser (plover v0.6.0)

Copy Markdown View Source

Recursive-descent parser for IMAP response token lists.

Consumes token lists produced by Plover.Protocol.Tokenizer and returns structured response data.

RFC 9051 Section 7 - Server Responses

Summary

Functions

Parse a token list into a response struct.

Types

token()

@type token() ::
  {:atom, String.t()}
  | {:number, integer()}
  | {:quoted_string, String.t()}
  | {:literal, binary()}
  | {:flag, String.t()}
  | nil
  | :lparen
  | :rparen
  | :lbracket
  | :rbracket
  | :star
  | :plus
  | :crlf

tokens()

@type tokens() :: [token()]

Functions

parse(tokens)

@spec parse(tokens()) :: {:ok, term()} | {:error, term()}

Parse a token list into a response struct.