/*
 * S-expressions as used by IMAP.
 */

enum
{
	SxUnknown = 0,
	SxAtom,
	SxString,
	SxNumber,
	SxList,
};

typedef struct Sx Sx;
struct Sx
{
	int type;
	char *data;
	int ndata;
	vlong number;
	Sx **sx;
	int nsx;
};

Sx*	Brdsx(Biobuf*);
Sx*	Brdsx1(Biobuf*);
void	freesx(Sx*);
int	oksx(Sx*);
int	sxfmt(Fmt*);
int	sxwalk(Sx*);

