=================================================================== RCS file: /cvs/mandoc/mandoc.h,v retrieving revision 1.153 retrieving revision 1.163 diff -u -p -r1.153 -r1.163 --- mandoc/mandoc.h 2014/09/03 23:21:47 1.153 +++ mandoc/mandoc.h 2014/10/14 02:16:06 1.163 @@ -1,6 +1,6 @@ -/* $Id: mandoc.h,v 1.153 2014/09/03 23:21:47 schwarze Exp $ */ +/* $Id: mandoc.h,v 1.163 2014/10/14 02:16:06 schwarze Exp $ */ /* - * Copyright (c) 2010, 2011 Kristaps Dzonsons + * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any @@ -72,6 +72,9 @@ enum mandocerr { MANDOCERR_SEC_ORDER, /* sections out of conventional order: Sh title */ MANDOCERR_SEC_REP, /* duplicate section title: Sh title */ 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 */ MANDOCERR_MACRO_OBS, /* obsolete macro: macro */ @@ -101,6 +104,7 @@ enum mandocerr { MANDOCERR_BF_NOFONT, /* missing font type, using \fR: Bf */ MANDOCERR_BF_BADFONT, /* unknown font type, using \fR: Bf font */ MANDOCERR_ARG_STD, /* missing -std argument, adding it: macro */ + MANDOCERR_EQN_NOBOX, /* missing eqn box, using "": op */ /* related to bad arguments */ MANDOCERR_ARG_QUOTE, /* unterminated quoted argument */ @@ -110,6 +114,8 @@ enum mandocerr { MANDOCERR_BL_REP, /* skipping duplicate list type: Bl -type */ MANDOCERR_BL_SKIPW, /* skipping -width argument: Bl -type */ 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_SM_BAD, /* invalid Boolean argument: macro arg */ MANDOCERR_FT_BAD, /* unknown font, skipping request: ft font */ @@ -129,7 +135,6 @@ enum mandocerr { MANDOCERR_EQNSCOPE, /* equation scope open on exit */ MANDOCERR_EQNBADSCOPE, /* overlapping equation scopes */ MANDOCERR_EQNEOF, /* unexpected end of equation */ - MANDOCERR_EQNSYNT, /* equation syntax error */ /* related to tables */ MANDOCERR_TBL, /* bad table syntax */ @@ -241,6 +246,7 @@ struct tbl_cell { #define TBL_CELL_EQUAL (1 << 4) /* e, E */ #define TBL_CELL_UP (1 << 5) /* u, U */ #define TBL_CELL_WIGN (1 << 6) /* z, Z */ +#define TBL_CELL_WMAX (1 << 7) /* x, X */ struct tbl_head *head; }; @@ -302,23 +308,12 @@ enum eqn_boxt { EQN_ROOT, /* root of parse tree */ EQN_TEXT, /* text (number, variable, whatever) */ EQN_SUBEXPR, /* nested `eqn' subexpression */ - EQN_LIST, /* subexpressions list */ - EQN_MATRIX /* matrix subexpression */ + EQN_LIST, /* list (braces, etc.) */ + 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 { EQNFONT_NONE = 0, EQNFONT_ROMAN, @@ -330,11 +325,14 @@ enum eqn_fontt { enum eqn_post { EQNPOS_NONE = 0, - EQNPOS_OVER, EQNPOS_SUP, + EQNPOS_SUBSUP, EQNPOS_SUB, EQNPOS_TO, EQNPOS_FROM, + EQNPOS_FROMTO, + EQNPOS_OVER, + EQNPOS_SQRT, EQNPOS__MAX }; @@ -362,12 +360,16 @@ struct eqn_box { struct eqn_box *first; /* first child node */ struct eqn_box *last; /* last child node */ struct eqn_box *next; /* node sibling */ + struct eqn_box *prev; /* node sibling */ struct eqn_box *parent; /* node sibling */ char *text; /* text (or NULL) */ - char *left; - char *right; + char *left; /* fence left-hand */ + 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_markt mark; /* a mark about the box */ enum eqn_fontt font; /* font of box */ enum eqn_pilet pile; /* equation piling */ };