]> git.cameronkatri.com Git - mandoc.git/blobdiff - roff.h
Eliminate the class=It-* attributes.
[mandoc.git] / roff.h
diff --git a/roff.h b/roff.h
index 452e51a5692f7187d89244e2ff0fbd2fe39d46f3..f0da74bd9ac66adab5fdf333ddbc2a2786c05e40 100644 (file)
--- a/roff.h
+++ b/roff.h
@@ -1,4 +1,4 @@
-/*     $Id: roff.h,v 1.41 2017/04/24 23:06:18 schwarze Exp $   */
+/*     $Id: roff.h,v 1.59 2018/04/11 17:11:13 schwarze Exp $   */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -16,6 +16,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+struct ohash;
 struct mdoc_arg;
 union  mdoc_data;
 
@@ -60,12 +61,24 @@ enum        roff_type {
        ROFFT_TAIL,
        ROFFT_ELEM,
        ROFFT_TEXT,
+       ROFFT_COMMENT,
        ROFFT_TBL,
        ROFFT_EQN
 };
 
 enum   roff_tok {
-       ROFF_ab = 0,
+       ROFF_br = 0,
+       ROFF_ce,
+       ROFF_ft,
+       ROFF_ll,
+       ROFF_mc,
+       ROFF_po,
+       ROFF_rj,
+       ROFF_sp,
+       ROFF_ta,
+       ROFF_ti,
+       ROFF_MAX,
+       ROFF_ab,
        ROFF_ad,
        ROFF_af,
        ROFF_aln,
@@ -85,7 +98,6 @@ enum  roff_tok {
        ROFF_boxa,
        ROFF_bp,
        ROFF_BP,
-       /* MAN_br, MDOC_br */
        ROFF_break,
        ROFF_breakchar,
        ROFF_brnl,
@@ -93,7 +105,6 @@ enum roff_tok {
        ROFF_brpnl,
        ROFF_c2,
        ROFF_cc,
-       ROFF_ce,
        ROFF_cf,
        ROFF_cflags,
        ROFF_ch,
@@ -154,7 +165,6 @@ enum        roff_tok {
        ROFF_fschar,
        ROFF_fspacewidth,
        ROFF_fspecial,
-       /* MAN_ft; ignored in mdoc(7) */
        ROFF_ftr,
        ROFF_fzoom,
        ROFF_gcolor,
@@ -194,14 +204,12 @@ enum      roff_tok {
        ROFF_lg,
        ROFF_lhang,
        ROFF_linetabs,
-       /* MAN_ll, MDOC_ll */
        ROFF_lnr,
        ROFF_lnrf,
        ROFF_lpfx,
        ROFF_ls,
        ROFF_lsm,
        ROFF_lt,
-       ROFF_mc,
        ROFF_mediasize,
        ROFF_minss,
        ROFF_mk,
@@ -233,7 +241,6 @@ enum        roff_tok {
        ROFF_pm,
        ROFF_pn,
        ROFF_pnr,
-       ROFF_po,
        ROFF_ps,
        ROFF_psbb,
        ROFF_pshape,
@@ -246,7 +253,6 @@ enum        roff_tok {
        ROFF_return,
        ROFF_rfschar,
        ROFF_rhang,
-       ROFF_rj,
        ROFF_rm,
        ROFF_rn,
        ROFF_rnn,
@@ -259,7 +265,6 @@ enum        roff_tok {
        ROFF_shift,
        ROFF_sizes,
        ROFF_so,
-       /* MAN_sp, MDOC_sp */
        ROFF_spacewidth,
        ROFF_special,
        ROFF_spreadwarn,
@@ -269,11 +274,9 @@ enum       roff_tok {
        ROFF_sv,
        ROFF_sy,
        ROFF_T_,
-       ROFF_ta,
        ROFF_tc,
        ROFF_TE,
        ROFF_TH,
-       ROFF_ti,
        ROFF_tkf,
        ROFF_tl,
        ROFF_tm,
@@ -307,6 +310,7 @@ enum        roff_tok {
        ROFF_writem,
        ROFF_xflag,
        ROFF_cblock,
+       ROFF_RENAMED,
        ROFF_USERDEF,
        TOKEN_NONE,
        MDOC_Dd,
@@ -427,11 +431,8 @@ enum       roff_tok {
        MDOC_En,
        MDOC_Dx,
        MDOC__Q,
-       MDOC_br,
-       MDOC_sp,
        MDOC__U,
        MDOC_Ta,
-       MDOC_ll,
        MDOC_MAX,
        MAN_TH,
        MAN_SH,
@@ -453,8 +454,6 @@ enum        roff_tok {
        MAN_I,
        MAN_IR,
        MAN_RI,
-       MAN_br,
-       MAN_sp,
        MAN_nf,
        MAN_fi,
        MAN_RE,
@@ -464,13 +463,13 @@ enum      roff_tok {
        MAN_PD,
        MAN_AT,
        MAN_in,
-       MAN_ft,
        MAN_OP,
        MAN_EX,
        MAN_EE,
        MAN_UR,
        MAN_UE,
-       MAN_ll,
+       MAN_MT,
+       MAN_ME,
        MAN_MAX
 };
 
@@ -501,7 +500,7 @@ struct      roff_node {
        union mdoc_data  *norm;    /* Normalized arguments. */
        char             *string;  /* TEXT */
        const struct tbl_span *span; /* TBL */
-       const struct eqn *eqn;     /* EQN */
+       struct eqn_box   *eqn;     /* EQN */
        int               line;    /* Input file line number. */
        int               pos;     /* Input file column number. */
        int               flags;
@@ -532,13 +531,17 @@ struct    roff_meta {
        char             *name;    /* Leading manual name. */
        char             *date;    /* Normalized date. */
        int               hasbody; /* Document is not empty. */
+       int               rcsids;  /* Bits indexed by enum mandoc_os. */
+       enum mandoc_os    os_e;    /* Operating system. */
 };
 
 struct roff_man {
        struct roff_meta  meta;    /* Document meta-data. */
        struct mparse    *parse;   /* Parse pointer. */
        struct roff      *roff;    /* Roff parser state data. */
-       const char       *defos;   /* Default operating system. */
+       struct ohash     *mdocmac; /* Mdoc macro lookup table. */
+       struct ohash     *manmac;  /* Man macro lookup table. */
+       const char       *os_s;    /* Default operating system. */
        struct roff_node *first;   /* The first node parsed. */
        struct roff_node *last;    /* The last node parsed. */
        struct roff_node *last_es; /* The most recent Es node. */
@@ -569,4 +572,9 @@ struct      roff_man {
 
 extern const char *const *roff_name;
 
+
 void            deroff(char **, const struct roff_node *);
+struct ohash   *roffhash_alloc(enum roff_tok, enum roff_tok);
+enum roff_tok   roffhash_find(struct ohash *, const char *, size_t);
+void            roffhash_free(struct ohash *);
+void            roff_validate(struct roff_man *);