version 1.151, 2014/08/01 17:27:44 |
version 1.165, 2014/10/25 01:03:52 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
|
|
MANDOCERR_WARNING, /* ===== start of warnings ===== */ |
MANDOCERR_WARNING, /* ===== start of warnings ===== */ |
|
|
/* related to the prologue */ |
/* related to the prologue */ |
MANDOCERR_TH_MISSING, /* missing .TH macro, using "unknown 1" */ |
MANDOCERR_DT_NOTITLE, /* missing manual title, using UNTITLED: line */ |
|
MANDOCERR_TH_NOTITLE, /* missing manual title, using "": [macro] */ |
MANDOCERR_TITLE_CASE, /* lower case character in document title */ |
MANDOCERR_TITLE_CASE, /* lower case character in document title */ |
|
MANDOCERR_MSEC_MISSING, /* missing manual section, using "": macro */ |
MANDOCERR_MSEC_BAD, /* unknown manual section: Dt ... section */ |
MANDOCERR_MSEC_BAD, /* unknown manual section: Dt ... section */ |
MANDOCERR_ARCH_BAD, /* unknown manual volume or arch: Dt ... volume */ |
MANDOCERR_ARCH_BAD, /* unknown manual volume or arch: Dt ... volume */ |
MANDOCERR_DATE_MISSING, /* missing date, using today's date */ |
MANDOCERR_DATE_MISSING, /* missing date, using today's date */ |
MANDOCERR_DATE_BAD, /* cannot parse date, using it verbatim: date */ |
MANDOCERR_DATE_BAD, /* cannot parse date, using it verbatim: date */ |
MANDOCERR_PROLOG_ORDER, /* prologue macros out of order: macro */ |
MANDOCERR_OS_MISSING, /* missing Os macro, using "" */ |
MANDOCERR_PROLOG_REP, /* duplicate prologue macro: macro */ |
MANDOCERR_PROLOG_REP, /* duplicate prologue macro: macro */ |
MANDOCERR_PROLOG_BAD, /* incomplete prologue, terminated by: macro */ |
MANDOCERR_PROLOG_LATE, /* late prologue macro: macro */ |
MANDOCERR_PROLOG_ONLY, /* skipping prologue macro in body: macro */ |
MANDOCERR_DT_LATE, /* skipping late title macro: Dt args */ |
|
MANDOCERR_PROLOG_ORDER, /* prologue macros out of order: macros */ |
|
|
/* related to document structure */ |
/* related to document structure */ |
MANDOCERR_SO, /* .so is fragile, better use ln(1): so path */ |
MANDOCERR_SO, /* .so is fragile, better use ln(1): so path */ |
|
|
MANDOCERR_SEC_ORDER, /* sections out of conventional order: Sh title */ |
MANDOCERR_SEC_ORDER, /* sections out of conventional order: Sh title */ |
MANDOCERR_SEC_REP, /* duplicate section title: Sh title */ |
MANDOCERR_SEC_REP, /* duplicate section title: Sh title */ |
MANDOCERR_SEC_MSEC, /* unexpected section: Sh title for ... only */ |
MANDOCERR_SEC_MSEC, /* unexpected section: Sh title for ... only */ |
|
MANDOCERR_XR_ORDER, /* unusual Xr order: ... after ... */ |
|
MANDOCERR_XR_PUNCT, /* unusual Xr punctuation: ... after ... */ |
|
MANDOCERR_AN_MISSING, /* AUTHORS section without An macro */ |
|
|
/* related to macros and nesting */ |
/* related to macros and nesting */ |
MANDOCERR_MACRO_OBS, /* obsolete macro: macro */ |
MANDOCERR_MACRO_OBS, /* obsolete macro: macro */ |
|
Line 104 enum mandocerr { |
|
MANDOCERR_BF_NOFONT, /* missing font type, using \fR: Bf */ |
MANDOCERR_BF_NOFONT, /* missing font type, using \fR: Bf */ |
MANDOCERR_BF_BADFONT, /* unknown font type, using \fR: Bf font */ |
MANDOCERR_BF_BADFONT, /* unknown font type, using \fR: Bf font */ |
MANDOCERR_ARG_STD, /* missing -std argument, adding it: macro */ |
MANDOCERR_ARG_STD, /* missing -std argument, adding it: macro */ |
|
MANDOCERR_EQN_NOBOX, /* missing eqn box, using "": op */ |
|
|
/* related to bad arguments */ |
/* related to bad arguments */ |
MANDOCERR_ARG_QUOTE, /* unterminated quoted argument */ |
MANDOCERR_ARG_QUOTE, /* unterminated quoted argument */ |
Line 107 enum mandocerr { |
|
Line 114 enum mandocerr { |
|
MANDOCERR_BL_REP, /* skipping duplicate list type: Bl -type */ |
MANDOCERR_BL_REP, /* skipping duplicate list type: Bl -type */ |
MANDOCERR_BL_SKIPW, /* skipping -width argument: Bl -type */ |
MANDOCERR_BL_SKIPW, /* skipping -width argument: Bl -type */ |
MANDOCERR_AT_BAD, /* unknown AT&T UNIX version: At version */ |
MANDOCERR_AT_BAD, /* unknown AT&T UNIX version: At version */ |
|
MANDOCERR_FA_COMMA, /* comma in function argument: arg */ |
|
MANDOCERR_FN_PAREN, /* parenthesis in function name: arg */ |
MANDOCERR_RS_BAD, /* invalid content in Rs block: macro */ |
MANDOCERR_RS_BAD, /* invalid content in Rs block: macro */ |
MANDOCERR_SM_BAD, /* invalid Boolean argument: macro arg */ |
MANDOCERR_SM_BAD, /* invalid Boolean argument: macro arg */ |
MANDOCERR_FT_BAD, /* unknown font, skipping request: ft font */ |
MANDOCERR_FT_BAD, /* unknown font, skipping request: ft font */ |
Line 126 enum mandocerr { |
|
Line 135 enum mandocerr { |
|
MANDOCERR_EQNSCOPE, /* equation scope open on exit */ |
MANDOCERR_EQNSCOPE, /* equation scope open on exit */ |
MANDOCERR_EQNBADSCOPE, /* overlapping equation scopes */ |
MANDOCERR_EQNBADSCOPE, /* overlapping equation scopes */ |
MANDOCERR_EQNEOF, /* unexpected end of equation */ |
MANDOCERR_EQNEOF, /* unexpected end of equation */ |
MANDOCERR_EQNSYNT, /* equation syntax error */ |
|
|
|
/* related to tables */ |
/* related to tables */ |
MANDOCERR_TBL, /* bad table syntax */ |
MANDOCERR_TBL, /* bad table syntax */ |
Line 158 enum mandocerr { |
|
Line 166 enum mandocerr { |
|
MANDOCERR_IT_NONUM, /* skipping request without numeric argument */ |
MANDOCERR_IT_NONUM, /* skipping request without numeric argument */ |
MANDOCERR_ARG_SKIP, /* skipping all arguments: macro args */ |
MANDOCERR_ARG_SKIP, /* skipping all arguments: macro args */ |
MANDOCERR_ARG_EXCESS, /* skipping excess arguments: macro ... args */ |
MANDOCERR_ARG_EXCESS, /* skipping excess arguments: macro ... args */ |
|
MANDOCERR_DIVZERO, /* divide by zero */ |
|
|
MANDOCERR_FATAL, /* ===== start of fatal errors ===== */ |
MANDOCERR_FATAL, /* ===== start of fatal errors ===== */ |
|
|
Line 168 enum mandocerr { |
|
Line 177 enum mandocerr { |
|
|
|
/* ===== system errors ===== */ |
/* ===== system errors ===== */ |
|
|
|
MANDOCERR_SYSDUP, /* cannot dup file descriptor */ |
|
MANDOCERR_SYSEXEC, /* cannot exec */ |
|
MANDOCERR_SYSEXIT, /* gunzip failed with code */ |
|
MANDOCERR_SYSFORK, /* cannot fork */ |
MANDOCERR_SYSOPEN, /* cannot open file */ |
MANDOCERR_SYSOPEN, /* cannot open file */ |
MANDOCERR_SYSSTAT, /* cannot stat file */ |
MANDOCERR_SYSPIPE, /* cannot open pipe */ |
MANDOCERR_SYSREAD, /* cannot read file */ |
MANDOCERR_SYSREAD, /* cannot read file */ |
|
MANDOCERR_SYSSIG, /* gunzip died from signal */ |
|
MANDOCERR_SYSSTAT, /* cannot stat file */ |
|
MANDOCERR_SYSWAIT, /* wait failed */ |
|
|
MANDOCERR_MAX |
MANDOCERR_MAX |
}; |
}; |
Line 231 struct tbl_cell { |
|
Line 247 struct tbl_cell { |
|
#define TBL_CELL_EQUAL (1 << 4) /* e, E */ |
#define TBL_CELL_EQUAL (1 << 4) /* e, E */ |
#define TBL_CELL_UP (1 << 5) /* u, U */ |
#define TBL_CELL_UP (1 << 5) /* u, U */ |
#define TBL_CELL_WIGN (1 << 6) /* z, Z */ |
#define TBL_CELL_WIGN (1 << 6) /* z, Z */ |
|
#define TBL_CELL_WMAX (1 << 7) /* x, X */ |
struct tbl_head *head; |
struct tbl_head *head; |
}; |
}; |
|
|
|
|
EQN_ROOT, /* root of parse tree */ |
EQN_ROOT, /* root of parse tree */ |
EQN_TEXT, /* text (number, variable, whatever) */ |
EQN_TEXT, /* text (number, variable, whatever) */ |
EQN_SUBEXPR, /* nested `eqn' subexpression */ |
EQN_SUBEXPR, /* nested `eqn' subexpression */ |
EQN_LIST, /* subexpressions list */ |
EQN_LIST, /* list (braces, etc.) */ |
EQN_MATRIX /* matrix subexpression */ |
EQN_LISTONE, /* singleton list */ |
|
EQN_PILE, /* vertical pile */ |
|
EQN_MATRIX /* pile of piles */ |
}; |
}; |
|
|
enum eqn_markt { |
|
EQNMARK_NONE = 0, |
|
EQNMARK_DOT, |
|
EQNMARK_DOTDOT, |
|
EQNMARK_HAT, |
|
EQNMARK_TILDE, |
|
EQNMARK_VEC, |
|
EQNMARK_DYAD, |
|
EQNMARK_BAR, |
|
EQNMARK_UNDER, |
|
EQNMARK__MAX |
|
}; |
|
|
|
enum eqn_fontt { |
enum eqn_fontt { |
EQNFONT_NONE = 0, |
EQNFONT_NONE = 0, |
EQNFONT_ROMAN, |
EQNFONT_ROMAN, |
Line 320 enum eqn_fontt { |
|
Line 326 enum eqn_fontt { |
|
|
|
enum eqn_post { |
enum eqn_post { |
EQNPOS_NONE = 0, |
EQNPOS_NONE = 0, |
EQNPOS_OVER, |
|
EQNPOS_SUP, |
EQNPOS_SUP, |
|
EQNPOS_SUBSUP, |
EQNPOS_SUB, |
EQNPOS_SUB, |
EQNPOS_TO, |
EQNPOS_TO, |
EQNPOS_FROM, |
EQNPOS_FROM, |
|
EQNPOS_FROMTO, |
|
EQNPOS_OVER, |
|
EQNPOS_SQRT, |
EQNPOS__MAX |
EQNPOS__MAX |
}; |
}; |
|
|
Line 352 struct eqn_box { |
|
Line 361 struct eqn_box { |
|
struct eqn_box *first; /* first child node */ |
struct eqn_box *first; /* first child node */ |
struct eqn_box *last; /* last child node */ |
struct eqn_box *last; /* last child node */ |
struct eqn_box *next; /* node sibling */ |
struct eqn_box *next; /* node sibling */ |
|
struct eqn_box *prev; /* node sibling */ |
struct eqn_box *parent; /* node sibling */ |
struct eqn_box *parent; /* node sibling */ |
char *text; /* text (or NULL) */ |
char *text; /* text (or NULL) */ |
char *left; |
char *left; /* fence left-hand */ |
char *right; |
char *right; /* fence right-hand */ |
|
char *top; /* expression over-symbol */ |
|
char *bottom; /* expression under-symbol */ |
|
size_t args; /* arguments in parent */ |
|
size_t expectargs; /* max arguments in parent */ |
enum eqn_post pos; /* position of next box */ |
enum eqn_post pos; /* position of next box */ |
enum eqn_markt mark; /* a mark about the box */ |
|
enum eqn_fontt font; /* font of box */ |
enum eqn_fontt font; /* font of box */ |
enum eqn_pilet pile; /* equation piling */ |
enum eqn_pilet pile; /* equation piling */ |
}; |
}; |
|
|
#define MPARSE_MAN 2 /* assume -man */ |
#define MPARSE_MAN 2 /* assume -man */ |
#define MPARSE_SO 4 /* honour .so requests */ |
#define MPARSE_SO 4 /* honour .so requests */ |
#define MPARSE_QUICK 8 /* abort the parse early */ |
#define MPARSE_QUICK 8 /* abort the parse early */ |
|
#define MPARSE_UTF8 16 /* accept UTF-8 input */ |
|
#define MPARSE_LATIN1 32 /* accept ISO-LATIN-1 input */ |
|
|
enum mandoc_esc { |
enum mandoc_esc { |
ESCAPE_ERROR = 0, /* bail! unparsable escape */ |
ESCAPE_ERROR = 0, /* bail! unparsable escape */ |
Line 420 struct mparse *mparse_alloc(int, enum mandoclevel, ma |
|
Line 435 struct mparse *mparse_alloc(int, enum mandoclevel, ma |
|
const char *); |
const char *); |
void mparse_free(struct mparse *); |
void mparse_free(struct mparse *); |
void mparse_keep(struct mparse *); |
void mparse_keep(struct mparse *); |
|
enum mandoclevel mparse_open(struct mparse *, int *, const char *, |
|
pid_t *); |
enum mandoclevel mparse_readfd(struct mparse *, int, const char *); |
enum mandoclevel mparse_readfd(struct mparse *, int, const char *); |
enum mandoclevel mparse_readmem(struct mparse *, const void *, size_t, |
enum mandoclevel mparse_readmem(struct mparse *, const void *, size_t, |
const char *); |
const char *); |
Line 429 void mparse_result(struct mparse *, |
|
Line 446 void mparse_result(struct mparse *, |
|
const char *mparse_getkeep(const struct mparse *); |
const char *mparse_getkeep(const struct mparse *); |
const char *mparse_strerror(enum mandocerr); |
const char *mparse_strerror(enum mandocerr); |
const char *mparse_strlevel(enum mandoclevel); |
const char *mparse_strlevel(enum mandoclevel); |
|
enum mandoclevel mparse_wait(struct mparse *, pid_t); |
|
|
__END_DECLS |
__END_DECLS |
|
|