Return to mdoc.h CVS log | Up to [cvsweb.bsd.lv] / mandoc |
version 1.3, 2008/12/17 17:18:38 | version 1.16, 2009/01/07 15:53:00 | ||
---|---|---|---|
|
|
||
#ifndef MDOC_H | #ifndef MDOC_H | ||
#define MDOC_H | #define MDOC_H | ||
#define MDOC_LINEARG_MAX 9 | #define MDOC_LINEARG_MAX 12 | ||
#define MDOC___ 0 | #define MDOC___ 0 | ||
#define MDOC_Dd 1 | #define MDOC_Dd 1 | ||
|
|
||
#define MDOC_svid4 57 | #define MDOC_svid4 57 | ||
#define MDOC_Filled 58 | #define MDOC_Filled 58 | ||
#define MDOC_Words 59 | #define MDOC_Words 59 | ||
#define MDOC_ARG_MAX 60 | #define MDOC_Emphasis 60 | ||
#define MDOC_Symbolic 61 | |||
#define MDOC_ARG_MAX 62 | |||
enum mdoc_err { | enum mdoc_err { | ||
ERR_SYNTAX_QUOTE, | ERR_SYNTAX_QUOTE, /* NOTUSED */ | ||
ERR_SYNTAX_UNQUOTE, | |||
ERR_SYNTAX_NOPUNCT, | |||
ERR_SYNTAX_WS, | ERR_SYNTAX_WS, | ||
ERR_SYNTAX_ARGS, | ERR_SYNTAX_ARG, | ||
ERR_SYNTAX_ARGFORM, | |||
ERR_SYNTAX_ARGVAL, | |||
ERR_SYNTAX_ARGBAD, | |||
ERR_SYNTAX_ARGMANY, | |||
ERR_MACRO_NOTSUP, | ERR_MACRO_NOTSUP, | ||
ERR_MACRO_NOTCALL, | ERR_MACRO_NOTCALL, | ||
ERR_SCOPE_BREAK, | ERR_SCOPE_BREAK, | ||
ERR_SCOPE_NOCTX, | |||
ERR_SCOPE_NONEST, | |||
ERR_SEC_PROLOGUE, | ERR_SEC_PROLOGUE, | ||
ERR_SEC_NPROLOGUE, | ERR_SEC_NPROLOGUE, | ||
ERR_SEC_PROLOGUE_OO, | ERR_SEC_PROLOGUE_OO, | ||
ERR_SEC_PROLOGUE_REP, | ERR_SEC_PROLOGUE_REP, | ||
ERR_SEC_NAME, | ERR_SEC_NAME, | ||
ERR_ARGS_EQ0, | |||
ERR_ARGS_EQ1, | |||
ERR_ARGS_GE1, | ERR_ARGS_GE1, | ||
ERR_ARGS_MANY | ERR_ARGS_LE2, | ||
ERR_ARGS_LE8, | |||
ERR_ARGS_MANY, | |||
ERR_SYNTAX_CHILDHEAD, | |||
ERR_SYNTAX_CHILDBODY, | |||
ERR_SYNTAX_EMPTYBODY, | |||
ERR_SYNTAX_EMPTYHEAD, | |||
ERR_SYNTAX_NOTEXT | |||
}; | }; | ||
enum mdoc_att { | |||
ATT_DEFAULT = 0, | |||
ATT_v1, | |||
ATT_v2, | |||
ATT_v3, | |||
ATT_v4, | |||
ATT_v5, | |||
ATT_v6, | |||
ATT_v7, | |||
ATT_32v, | |||
ATT_V1, | |||
ATT_V2, | |||
ATT_V3, | |||
ATT_V4 | |||
}; | |||
enum mdoc_warn { | enum mdoc_warn { | ||
WARN_SYNTAX_WS_EOLN, | WARN_SYNTAX_WS_EOLN, | ||
WARN_SYNTAX_MACLIKE, | WARN_SYNTAX_MACLIKE, | ||
WARN_SYNTAX_ARGLIKE, | |||
WARN_SYNTAX_QUOTED, | |||
WARN_SYNTAX_EMPTYBODY, | |||
WARN_IGN_AFTER_BLK, | |||
WARN_IGN_BEFORE_BLK, | |||
WARN_IGN_OBSOLETE, | |||
WARN_SEC_OO, | WARN_SEC_OO, | ||
WARN_ARGS_GE1 | WARN_ARGS_GE1, | ||
WARN_ARGS_EQ0, | |||
WARN_COMPAT_TROFF | |||
}; | }; | ||
struct mdoc_arg { | struct mdoc_arg { | ||
|
|
||
MDOC_TEXT, | MDOC_TEXT, | ||
MDOC_ELEM, | MDOC_ELEM, | ||
MDOC_HEAD, | MDOC_HEAD, | ||
MDOC_TAIL, | |||
MDOC_BODY, | MDOC_BODY, | ||
MDOC_BLOCK | MDOC_BLOCK | ||
}; | }; | ||
|
|
||
time_t date; | time_t date; | ||
#define META_TITLE_SZ (64) | #define META_TITLE_SZ (64) | ||
char title[META_TITLE_SZ]; | char title[META_TITLE_SZ]; | ||
#define META_OS_SZ (64) | |||
char os[META_OS_SZ]; | |||
}; | }; | ||
struct mdoc_text { | struct mdoc_text { | ||
|
|
||
}; | }; | ||
struct mdoc_head { | struct mdoc_head { | ||
size_t sz; | |||
char **args; | |||
int tok; | int tok; | ||
}; | }; | ||
struct mdoc_tail { | |||
int tok; | |||
}; | |||
struct mdoc_body { | struct mdoc_body { | ||
int tok; | int tok; | ||
}; | }; | ||
|
|
||
struct mdoc_elem elem; | struct mdoc_elem elem; | ||
struct mdoc_body body; | struct mdoc_body body; | ||
struct mdoc_head head; | struct mdoc_head head; | ||
struct mdoc_tail tail; | |||
struct mdoc_block block; | struct mdoc_block block; | ||
}; | }; | ||
|
|
||
struct mdoc_node *parent; | struct mdoc_node *parent; | ||
struct mdoc_node *child; | struct mdoc_node *child; | ||
struct mdoc_node *next; | struct mdoc_node *next; | ||
struct mdoc_node *prev; | |||
int line; | |||
int pos; | |||
enum mdoc_type type; | enum mdoc_type type; | ||
union mdoc_data data; | union mdoc_data data; | ||
}; | }; | ||
|
|
||
void mdoc_free(struct mdoc *); | void mdoc_free(struct mdoc *); | ||
struct mdoc *mdoc_alloc(void *data, const struct mdoc_cb *); | struct mdoc *mdoc_alloc(void *data, const struct mdoc_cb *); | ||
int mdoc_parseln(struct mdoc *, char *buf); | int mdoc_parseln(struct mdoc *, int, char *buf); | ||
const struct mdoc_node | const struct mdoc_node | ||
*mdoc_result(struct mdoc *); | *mdoc_result(struct mdoc *); | ||
int mdoc_endparse(struct mdoc *); | |||
__END_DECLS | __END_DECLS | ||