]> git.cameronkatri.com Git - mandoc.git/blobdiff - roff.h
Massively reduce the amount of text, cutting it down to what is needed
[mandoc.git] / roff.h
diff --git a/roff.h b/roff.h
index 59fd8ba9fded79cee9dbd5fd2c03a8fc6fb1fb28..68f50acb097eef86660f30187309cdfd1996bfe8 100644 (file)
--- a/roff.h
+++ b/roff.h
@@ -1,7 +1,7 @@
-/*     $Id: roff.h,v 1.43 2017/05/04 17:48:29 schwarze Exp $   */
+/*     $Id: roff.h,v 1.61 2018/08/18 02:08:27 schwarze Exp $   */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -61,12 +61,22 @@ enum        roff_type {
        ROFFT_TAIL,
        ROFFT_ELEM,
        ROFFT_TEXT,
+       ROFFT_COMMENT,
        ROFFT_TBL,
        ROFFT_EQN
 };
 
 enum   roff_tok {
        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,
@@ -95,7 +105,6 @@ enum roff_tok {
        ROFF_brpnl,
        ROFF_c2,
        ROFF_cc,
-       ROFF_ce,
        ROFF_cf,
        ROFF_cflags,
        ROFF_ch,
@@ -156,7 +165,6 @@ enum        roff_tok {
        ROFF_fschar,
        ROFF_fspacewidth,
        ROFF_fspecial,
-       /* MAN_ft; ignored in mdoc(7) */
        ROFF_ftr,
        ROFF_fzoom,
        ROFF_gcolor,
@@ -196,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,
@@ -235,7 +241,6 @@ enum        roff_tok {
        ROFF_pm,
        ROFF_pn,
        ROFF_pnr,
-       ROFF_po,
        ROFF_ps,
        ROFF_psbb,
        ROFF_pshape,
@@ -248,7 +253,6 @@ enum        roff_tok {
        ROFF_return,
        ROFF_rfschar,
        ROFF_rhang,
-       ROFF_rj,
        ROFF_rm,
        ROFF_rn,
        ROFF_rnn,
@@ -261,7 +265,6 @@ enum        roff_tok {
        ROFF_shift,
        ROFF_sizes,
        ROFF_so,
-       /* MAN_sp, MDOC_sp */
        ROFF_spacewidth,
        ROFF_special,
        ROFF_spreadwarn,
@@ -271,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,
@@ -309,6 +310,7 @@ enum        roff_tok {
        ROFF_writem,
        ROFF_xflag,
        ROFF_cblock,
+       ROFF_RENAMED,
        ROFF_USERDEF,
        TOKEN_NONE,
        MDOC_Dd,
@@ -429,15 +431,14 @@ enum      roff_tok {
        MDOC_En,
        MDOC_Dx,
        MDOC__Q,
-       MDOC_sp,
        MDOC__U,
        MDOC_Ta,
-       MDOC_ll,
        MDOC_MAX,
        MAN_TH,
        MAN_SH,
        MAN_SS,
        MAN_TP,
+       MAN_TQ,
        MAN_LP,
        MAN_PP,
        MAN_P,
@@ -454,7 +455,6 @@ enum        roff_tok {
        MAN_I,
        MAN_IR,
        MAN_RI,
-       MAN_sp,
        MAN_nf,
        MAN_fi,
        MAN_RE,
@@ -464,13 +464,15 @@ enum      roff_tok {
        MAN_PD,
        MAN_AT,
        MAN_in,
-       MAN_ft,
+       MAN_SY,
+       MAN_YS,
        MAN_OP,
        MAN_EX,
        MAN_EE,
        MAN_UR,
        MAN_UE,
-       MAN_ll,
+       MAN_MT,
+       MAN_ME,
        MAN_MAX
 };
 
@@ -501,7 +503,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,6 +534,8 @@ 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 {
@@ -540,7 +544,7 @@ struct      roff_man {
        struct roff      *roff;    /* Roff parser state data. */
        struct ohash     *mdocmac; /* Mdoc macro lookup table. */
        struct ohash     *manmac;  /* Man macro lookup table. */
-       const char       *defos;   /* Default operating system. */
+       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. */
@@ -576,3 +580,4 @@ 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 *);