[BACK]Return to roff.h CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Annotation of mandoc/roff.h, Revision 1.1

1.1     ! kristaps    1: /* $Id: roff.c,v 1.42 2008/12/05 22:34:30 kristaps Exp $ */
        !             2: /*
        !             3:  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
        !             4:  *
        !             5:  * Permission to use, copy, modify, and distribute this software for any
        !             6:  * purpose with or without fee is hereby granted, provided that the
        !             7:  * above copyright notice and this permission notice appear in all
        !             8:  * copies.
        !             9:  *
        !            10:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
        !            11:  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
        !            12:  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
        !            13:  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
        !            14:  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
        !            15:  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
        !            16:  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        !            17:  * PERFORMANCE OF THIS SOFTWARE.
        !            18:  */
        !            19: #ifndef ROFF_H
        !            20: #define ROFF_H
        !            21:
        !            22: enum   roffd {
        !            23:        ROFF_ENTER = 0,
        !            24:        ROFF_EXIT
        !            25: };
        !            26:
        !            27: enum   rofftype {
        !            28:        ROFF_COMMENT,
        !            29:        ROFF_TEXT,
        !            30:        ROFF_LAYOUT,
        !            31:        ROFF_SPECIAL
        !            32: };
        !            33:
        !            34: struct rofftree;
        !            35:
        !            36: #define        ROFFCALL_ARGS \
        !            37:        int tok, struct rofftree *tree, \
        !            38:        char *argv[], enum roffd type
        !            39:
        !            40: struct rofftok {
        !            41:        int             (*cb)(ROFFCALL_ARGS);   /* Callback. */
        !            42:        const int        *args;                 /* Args (or NULL). */
        !            43:        const int        *parents;              /* Limit to parents. */
        !            44:        const int        *children;             /* Limit to kids. */
        !            45:        int               ctx;                  /* Blk-close node. */
        !            46:        enum rofftype     type;                 /* Type of macro. */
        !            47:        int               flags;
        !            48: #define        ROFF_PARSED      (1 << 0)               /* "Parsed". */
        !            49: #define        ROFF_CALLABLE    (1 << 1)               /* "Callable". */
        !            50: #define        ROFF_SHALLOW     (1 << 2)               /* Nesting block. */
        !            51: #define        ROFF_LSCOPE      (1 << 3)               /* Line scope. */
        !            52: };
        !            53:
        !            54: __BEGIN_DECLS
        !            55:
        !            56: static int               roff_Dd(ROFFCALL_ARGS); /* FIXME: deprecate. */
        !            57: static int               roff_Dt(ROFFCALL_ARGS); /* FIXME: deprecate. */
        !            58: static int               roff_Os(ROFFCALL_ARGS); /* FIXME: deprecate. */
        !            59: static int               roff_Ns(ROFFCALL_ARGS); /* FIXME: deprecate. */
        !            60: static int               roff_Sm(ROFFCALL_ARGS); /* FIXME: deprecate. */
        !            61: static int               roff_layout(ROFFCALL_ARGS);
        !            62: static int               roff_text(ROFFCALL_ARGS);
        !            63: static int               roff_noop(ROFFCALL_ARGS);
        !            64: static int               roff_depr(ROFFCALL_ARGS);
        !            65: static int               roff_ordered(ROFFCALL_ARGS);
        !            66:
        !            67: static const int roffarg_An[] = { ROFF_Split, ROFF_Nosplit, ROFF_ARGMAX };
        !            68: static const int roffarg_Bd[] = { ROFF_Ragged, ROFF_Unfilled, ROFF_Literal,
        !            69:        ROFF_File, ROFF_Offset, ROFF_Filled, ROFF_Compact, ROFF_ARGMAX };
        !            70: static const int roffarg_Bk[] = { ROFF_Words, ROFF_ARGMAX };
        !            71: static const int roffarg_Ex[] = { ROFF_Std, ROFF_ARGMAX };
        !            72: static const int roffarg_Rv[] = { ROFF_Std, ROFF_ARGMAX };
        !            73: static         const int roffarg_Bl[] = { ROFF_Bullet, ROFF_Dash, ROFF_Hyphen,
        !            74:        ROFF_Item, ROFF_Enum, ROFF_Tag, ROFF_Diag, ROFF_Hang, ROFF_Ohang,
        !            75:        ROFF_Inset, ROFF_Column, ROFF_Offset, ROFF_Width, ROFF_Compact,
        !            76:        ROFF_ARGMAX };
        !            77: static         const int roffarg_St[] = { ROFF_p1003_1_88, ROFF_p1003_1_90,
        !            78:        ROFF_p1003_1_96, ROFF_p1003_1_2001, ROFF_p1003_1_2004, ROFF_p1003_1,
        !            79:        ROFF_p1003_1b, ROFF_p1003_1b_93, ROFF_p1003_1c_95, ROFF_p1003_1g_2000,
        !            80:        ROFF_p1003_2_92, ROFF_p1387_2_95, ROFF_p1003_2, ROFF_p1387_2,
        !            81:        ROFF_isoC_90, ROFF_isoC_amd1, ROFF_isoC_tcor1, ROFF_isoC_tcor2,
        !            82:        ROFF_isoC_99, ROFF_ansiC, ROFF_ansiC_89, ROFF_ansiC_99, ROFF_ieee754,
        !            83:        ROFF_iso8802_3, ROFF_xpg3, ROFF_xpg4, ROFF_xpg4_2, ROFF_xpg4_3,
        !            84:        ROFF_xbd5, ROFF_xcu5, ROFF_xsh5, ROFF_xns5, ROFF_xns5_2d2_0,
        !            85:        ROFF_xcurses4_2, ROFF_susv2, ROFF_susv3, ROFF_svid4, ROFF_ARGMAX };
        !            86:
        !            87: static const int roffchild_Bl[] = { ROFF_It, ROFF_El, ROFF_MAX };
        !            88: static const int roffchild_Fo[] = { ROFF_Fa, ROFF_Fc, ROFF_MAX };
        !            89: static const int roffchild_Rs[] = { ROFF_Re, ROFF__A, ROFF__B, ROFF__D,
        !            90:        ROFF__I, ROFF__J, ROFF__N, ROFF__O, ROFF__P, ROFF__R, ROFF__T, ROFF__V,
        !            91:        ROFF_MAX };
        !            92:
        !            93: static const int roffparent_El[] = { ROFF_Bl, ROFF_It, ROFF_MAX };
        !            94: static const int roffparent_Fc[] = { ROFF_Fo, ROFF_Fa, ROFF_MAX };
        !            95: static const int roffparent_Oc[] = { ROFF_Oo, ROFF_MAX };
        !            96: static const int roffparent_It[] = { ROFF_Bl, ROFF_It, ROFF_MAX };
        !            97: static const int roffparent_Re[] = { ROFF_Rs, ROFF_MAX };
        !            98:
        !            99: static const struct rofftok tokens[ROFF_MAX] = {
        !           100:        {   roff_noop, NULL, NULL, NULL, 0, ROFF_COMMENT, 0 }, /* \" */
        !           101:        {     roff_Dd, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Dd */
        !           102:        {     roff_Dt, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Dt */
        !           103:        {     roff_Os, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Os */
        !           104:        { roff_layout, NULL, NULL, NULL, ROFF_Sh, ROFF_LAYOUT, 0 }, /* Sh */
        !           105:        { roff_layout, NULL, NULL, NULL, ROFF_Ss, ROFF_LAYOUT, 0 }, /* Ss */
        !           106:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Pp */ /* XXX 0 args */
        !           107:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_LSCOPE }, /* D1 */
        !           108:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_LSCOPE }, /* Dl */
        !           109:        { roff_layout, roffarg_Bd, NULL, NULL, 0, ROFF_LAYOUT, 0 },     /* Bd */
        !           110:        {   roff_noop, NULL, NULL, NULL, ROFF_Bd, ROFF_LAYOUT, 0 }, /* Ed */
        !           111:        { roff_layout, roffarg_Bl, NULL, roffchild_Bl, 0, ROFF_LAYOUT, 0 }, /* Bl */
        !           112:        {   roff_noop, NULL, roffparent_El, NULL, ROFF_Bl, ROFF_LAYOUT, 0 }, /* El */
        !           113:        { roff_layout, NULL, roffparent_It, NULL, ROFF_It, ROFF_LAYOUT, ROFF_PARSED | ROFF_SHALLOW }, /* It */
        !           114:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ad */ /* FIXME */
        !           115:        {   roff_text, roffarg_An, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* An */
        !           116:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ar */
        !           117:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Cd */ /* XXX man.4 only */
        !           118:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Cm */
        !           119:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dv */ /* XXX needs arg */
        !           120:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Er */ /* XXX needs arg */
        !           121:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ev */ /* XXX needs arg */
        !           122:        {   roff_text, roffarg_Ex, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ex */
        !           123:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Fa */ /* XXX needs arg */
        !           124:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Fd */
        !           125:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Fl */
        !           126:        {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, /*XXX*/ -1 }, /* Fn */
        !           127:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ft */
        !           128:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ic */ /* XXX needs arg */
        !           129:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* In */
        !           130:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Li */
        !           131:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Nd */
        !           132:        {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Nm */
        !           133:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Op */
        !           134:        {   roff_depr, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ot */
        !           135:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Pa */
        !           136:        {   roff_text, roffarg_Rv, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Rv */
        !           137:        {   roff_text, roffarg_St, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* St */
        !           138:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Va */
        !           139:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Vt */ /* XXX needs arg */
        !           140:        {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, /*XXX*/ -1 }, /* Xr */
        !           141:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* %A */
        !           142:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE}, /* %B */
        !           143:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %D */
        !           144:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE}, /* %I */
        !           145:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE}, /* %J */
        !           146:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %N */
        !           147:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %O */
        !           148:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %P */
        !           149:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %R */
        !           150:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* %T */
        !           151:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %V */
        !           152:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ac */
        !           153:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ao */
        !           154:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Aq */
        !           155:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* At */ /* XXX at most 2 args */
        !           156:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Bc */
        !           157:        { roff_layout, NULL, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Bf */ /* FIXME */
        !           158:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Bo */
        !           159:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Bq */
        !           160:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bsx */
        !           161:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bx */
        !           162:        {        NULL, NULL, NULL, NULL, 0, ROFF_SPECIAL, 0 },  /* Db */
        !           163:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dc */
        !           164:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Do */
        !           165:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Dq */
        !           166:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ec */
        !           167:        {   roff_noop, NULL, NULL, NULL, ROFF_Bf, ROFF_LAYOUT, 0 }, /* Ef */
        !           168:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Em */ /* XXX needs arg */
        !           169:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Eo */
        !           170:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Fx */
        !           171:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ms */
        !           172:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* No */
        !           173:        {     roff_Ns, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ns */
        !           174:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Nx */
        !           175:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ox */
        !           176:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Pc */
        !           177:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Pf */
        !           178:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Po */
        !           179:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Pq */
        !           180:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Qc */
        !           181:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ql */
        !           182:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Qo */
        !           183:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Qq */
        !           184:        {   roff_noop, NULL, roffparent_Re, NULL, ROFF_Rs, ROFF_LAYOUT, 0 }, /* Re */
        !           185:        { roff_layout, NULL, NULL, roffchild_Rs, 0, ROFF_LAYOUT, 0 },   /* Rs */
        !           186:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sc */
        !           187:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* So */
        !           188:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Sq */
        !           189:        {     roff_Sm, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Sm */
        !           190:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sx */
        !           191:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sy */
        !           192:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Tn */
        !           193:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ux */
        !           194:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Xc */
        !           195:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Xo */
        !           196:        { roff_layout, NULL, NULL, roffchild_Fo, 0, ROFF_LAYOUT, 0 }, /* Fo */
        !           197:        {   roff_noop, NULL, roffparent_Fc, NULL, ROFF_Fo, ROFF_LAYOUT, 0 }, /* Fc */
        !           198:        { roff_layout, NULL, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Oo */
        !           199:        {   roff_noop, NULL, roffparent_Oc, NULL, ROFF_Oo, ROFF_LAYOUT, 0 }, /* Oc */
        !           200:        { roff_layout, roffarg_Bk, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Bk */
        !           201:        {   roff_noop, NULL, NULL, NULL, ROFF_Bk, ROFF_LAYOUT, 0 }, /* Ek */
        !           202:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Bt */
        !           203:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Hf */
        !           204:        {   roff_depr, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Fr */
        !           205:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ud */
        !           206:        };
        !           207:
        !           208: #define        ROFF_VALUE      (1 << 0)
        !           209:
        !           210: static const int tokenargs[ROFF_ARGMAX] = {
        !           211:        0,              0,              0,              0,
        !           212:        0,              ROFF_VALUE,     ROFF_VALUE,     0,
        !           213:        0,              0,              0,              0,
        !           214:        0,              0,              0,              0,
        !           215:        0,              0,              ROFF_VALUE,     0,
        !           216:        0,              ROFF_VALUE,     0,              0,
        !           217:        0,              0,              0,              0,
        !           218:        0,              0,              0,              0,
        !           219:        0,              0,              0,              0,
        !           220:        0,              0,              0,              0,
        !           221:        0,              0,              0,              0,
        !           222:        0,              0,              0,              0,
        !           223:        0,              0,              0,              0,
        !           224:        0,              0,              0,              0,
        !           225:        0,              0,              0,              0,
        !           226:        };
        !           227:
        !           228: const  char *const toknamesp[ROFF_MAX] = {
        !           229:        "\\\"",         "Dd",           "Dt",           "Os",
        !           230:        "Sh",           "Ss",           "Pp",           "D1",
        !           231:        "Dl",           "Bd",           "Ed",           "Bl",
        !           232:        "El",           "It",           "Ad",           "An",
        !           233:        "Ar",           "Cd",           "Cm",           "Dv",
        !           234:        "Er",           "Ev",           "Ex",           "Fa",
        !           235:        "Fd",           "Fl",           "Fn",           "Ft",
        !           236:        "Ic",           "In",           "Li",           "Nd",
        !           237:        "Nm",           "Op",           "Ot",           "Pa",
        !           238:        "Rv",           "St",           "Va",           "Vt",
        !           239:        /* LINTED */
        !           240:        "Xr",           "\%A",          "\%B",          "\%D",
        !           241:        /* LINTED */
        !           242:        "\%I",          "\%J",          "\%N",          "\%O",
        !           243:        /* LINTED */
        !           244:        "\%P",          "\%R",          "\%T",          "\%V",
        !           245:        "Ac",           "Ao",           "Aq",           "At",
        !           246:        "Bc",           "Bf",           "Bo",           "Bq",
        !           247:        "Bsx",          "Bx",           "Db",           "Dc",
        !           248:        "Do",           "Dq",           "Ec",           "Ef",
        !           249:        "Em",           "Eo",           "Fx",           "Ms",
        !           250:        "No",           "Ns",           "Nx",           "Ox",
        !           251:        "Pc",           "Pf",           "Po",           "Pq",
        !           252:        "Qc",           "Ql",           "Qo",           "Qq",
        !           253:        "Re",           "Rs",           "Sc",           "So",
        !           254:        "Sq",           "Sm",           "Sx",           "Sy",
        !           255:        "Tn",           "Ux",           "Xc",           "Xo",
        !           256:        "Fo",           "Fc",           "Oo",           "Oc",
        !           257:        "Bk",           "Ek",           "Bt",           "Hf",
        !           258:        "Fr",           "Ud",
        !           259:        };
        !           260:
        !           261: const  char *const tokargnamesp[ROFF_ARGMAX] = {
        !           262:        "split",                "nosplit",              "ragged",
        !           263:        "unfilled",             "literal",              "file",
        !           264:        "offset",               "bullet",               "dash",
        !           265:        "hyphen",               "item",                 "enum",
        !           266:        "tag",                  "diag",                 "hang",
        !           267:        "ohang",                "inset",                "column",
        !           268:        "width",                "compact",              "std",
        !           269:        "p1003.1-88",           "p1003.1-90",           "p1003.1-96",
        !           270:        "p1003.1-2001",         "p1003.1-2004",         "p1003.1",
        !           271:        "p1003.1b",             "p1003.1b-93",          "p1003.1c-95",
        !           272:        "p1003.1g-2000",        "p1003.2-92",           "p1387.2-95",
        !           273:        "p1003.2",              "p1387.2",              "isoC-90",
        !           274:        "isoC-amd1",            "isoC-tcor1",           "isoC-tcor2",
        !           275:        "isoC-99",              "ansiC",                "ansiC-89",
        !           276:        "ansiC-99",             "ieee754",              "iso8802-3",
        !           277:        "xpg3",                 "xpg4",                 "xpg4.2",
        !           278:        "xpg4.3",               "xbd5",                 "xcu5",
        !           279:        "xsh5",                 "xns5",                 "xns5.2d2.0",
        !           280:        "xcurses4.2",           "susv2",                "susv3",
        !           281:        "svid4",                "filled",               "words",
        !           282:        };
        !           283:
        !           284: const  char *const *toknames = toknamesp;
        !           285: const  char *const *tokargnames = tokargnamesp;
        !           286:
        !           287: __END_DECLS
        !           288:
        !           289: #endif /*!ROFF_H*/

CVSweb