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

Annotation of mandoc/roff.h, Revision 1.4

1.4     ! kristaps    1: /* $Id: roff.h,v 1.3 2008/12/06 16:50:18 kristaps Exp $ */
1.1       kristaps    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_layout(ROFFCALL_ARGS);
                     61: static int               roff_text(ROFFCALL_ARGS);
                     62: static int               roff_noop(ROFFCALL_ARGS);
                     63: static int               roff_depr(ROFFCALL_ARGS);
                     64: static int               roff_ordered(ROFFCALL_ARGS);
                     65:
                     66: static const int roffarg_An[] = { ROFF_Split, ROFF_Nosplit, ROFF_ARGMAX };
                     67: static const int roffarg_Bd[] = { ROFF_Ragged, ROFF_Unfilled, ROFF_Literal,
                     68:        ROFF_File, ROFF_Offset, ROFF_Filled, ROFF_Compact, ROFF_ARGMAX };
                     69: static const int roffarg_Bk[] = { ROFF_Words, ROFF_ARGMAX };
                     70: static const int roffarg_Ex[] = { ROFF_Std, ROFF_ARGMAX };
                     71: static const int roffarg_Rv[] = { ROFF_Std, ROFF_ARGMAX };
                     72: static         const int roffarg_Bl[] = { ROFF_Bullet, ROFF_Dash, ROFF_Hyphen,
                     73:        ROFF_Item, ROFF_Enum, ROFF_Tag, ROFF_Diag, ROFF_Hang, ROFF_Ohang,
                     74:        ROFF_Inset, ROFF_Column, ROFF_Offset, ROFF_Width, ROFF_Compact,
                     75:        ROFF_ARGMAX };
                     76: static         const int roffarg_St[] = { ROFF_p1003_1_88, ROFF_p1003_1_90,
                     77:        ROFF_p1003_1_96, ROFF_p1003_1_2001, ROFF_p1003_1_2004, ROFF_p1003_1,
                     78:        ROFF_p1003_1b, ROFF_p1003_1b_93, ROFF_p1003_1c_95, ROFF_p1003_1g_2000,
                     79:        ROFF_p1003_2_92, ROFF_p1387_2_95, ROFF_p1003_2, ROFF_p1387_2,
                     80:        ROFF_isoC_90, ROFF_isoC_amd1, ROFF_isoC_tcor1, ROFF_isoC_tcor2,
                     81:        ROFF_isoC_99, ROFF_ansiC, ROFF_ansiC_89, ROFF_ansiC_99, ROFF_ieee754,
                     82:        ROFF_iso8802_3, ROFF_xpg3, ROFF_xpg4, ROFF_xpg4_2, ROFF_xpg4_3,
                     83:        ROFF_xbd5, ROFF_xcu5, ROFF_xsh5, ROFF_xns5, ROFF_xns5_2d2_0,
                     84:        ROFF_xcurses4_2, ROFF_susv2, ROFF_susv3, ROFF_svid4, ROFF_ARGMAX };
                     85:
                     86: static const int roffchild_Bl[] = { ROFF_It, ROFF_El, ROFF_MAX };
                     87: static const int roffchild_Fo[] = { ROFF_Fa, ROFF_Fc, ROFF_MAX };
                     88: static const int roffchild_Rs[] = { ROFF_Re, ROFF__A, ROFF__B, ROFF__D,
                     89:        ROFF__I, ROFF__J, ROFF__N, ROFF__O, ROFF__P, ROFF__R, ROFF__T, ROFF__V,
                     90:        ROFF_MAX };
                     91:
                     92: static const int roffparent_El[] = { ROFF_Bl, ROFF_It, ROFF_MAX };
                     93: static const int roffparent_Fc[] = { ROFF_Fo, ROFF_Fa, ROFF_MAX };
                     94: static const int roffparent_Oc[] = { ROFF_Oo, ROFF_MAX };
                     95: static const int roffparent_It[] = { ROFF_Bl, ROFF_It, ROFF_MAX };
                     96: static const int roffparent_Re[] = { ROFF_Rs, ROFF_MAX };
                     97:
                     98: static const struct rofftok tokens[ROFF_MAX] = {
                     99:        {   roff_noop, NULL, NULL, NULL, 0, ROFF_COMMENT, 0 }, /* \" */
                    100:        {     roff_Dd, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Dd */
                    101:        {     roff_Dt, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Dt */
                    102:        {     roff_Os, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Os */
                    103:        { roff_layout, NULL, NULL, NULL, ROFF_Sh, ROFF_LAYOUT, 0 }, /* Sh */
                    104:        { roff_layout, NULL, NULL, NULL, ROFF_Ss, ROFF_LAYOUT, 0 }, /* Ss */
                    105:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Pp */ /* XXX 0 args */
                    106:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_LSCOPE }, /* D1 */
                    107:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_LSCOPE }, /* Dl */
                    108:        { roff_layout, roffarg_Bd, NULL, NULL, 0, ROFF_LAYOUT, 0 },     /* Bd */
                    109:        {   roff_noop, NULL, NULL, NULL, ROFF_Bd, ROFF_LAYOUT, 0 }, /* Ed */
                    110:        { roff_layout, roffarg_Bl, NULL, roffchild_Bl, 0, ROFF_LAYOUT, 0 }, /* Bl */
                    111:        {   roff_noop, NULL, roffparent_El, NULL, ROFF_Bl, ROFF_LAYOUT, 0 }, /* El */
                    112:        { roff_layout, NULL, roffparent_It, NULL, ROFF_It, ROFF_LAYOUT, ROFF_PARSED | ROFF_SHALLOW }, /* It */
                    113:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ad */ /* FIXME */
                    114:        {   roff_text, roffarg_An, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* An */
                    115:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ar */
                    116:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Cd */ /* XXX man.4 only */
                    117:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Cm */
                    118:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dv */ /* XXX needs arg */
                    119:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Er */ /* XXX needs arg */
                    120:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ev */ /* XXX needs arg */
1.2       kristaps  121:        {roff_ordered, roffarg_Ex, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ex */
1.1       kristaps  122:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Fa */ /* XXX needs arg */
                    123:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Fd */
                    124:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Fl */
                    125:        {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, /*XXX*/ -1 }, /* Fn */
                    126:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ft */
                    127:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ic */ /* XXX needs arg */
                    128:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* In */
                    129:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Li */
                    130:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Nd */
                    131:        {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Nm */
                    132:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Op */
                    133:        {   roff_depr, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ot */
                    134:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Pa */
                    135:        {   roff_text, roffarg_Rv, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Rv */
                    136:        {   roff_text, roffarg_St, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* St */
                    137:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Va */
                    138:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Vt */ /* XXX needs arg */
                    139:        {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, /*XXX*/ -1 }, /* Xr */
                    140:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* %A */
                    141:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE}, /* %B */
                    142:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %D */
                    143:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE}, /* %I */
                    144:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE}, /* %J */
                    145:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %N */
                    146:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %O */
                    147:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %P */
                    148:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %R */
                    149:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* %T */
                    150:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* %V */
                    151:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ac */
                    152:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ao */
                    153:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Aq */
1.4     ! kristaps  154: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* At */
1.1       kristaps  155:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Bc */
                    156:        { roff_layout, NULL, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Bf */ /* FIXME */
                    157:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Bo */
1.4     ! kristaps  158: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Bq */
        !           159: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bsx */
        !           160: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bx */
1.1       kristaps  161:        {        NULL, NULL, NULL, NULL, 0, ROFF_SPECIAL, 0 },  /* Db */
                    162:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dc */
                    163:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Do */
1.4     ! kristaps  164: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Dq */
        !           165:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ec */
1.1       kristaps  166:        {   roff_noop, NULL, NULL, NULL, ROFF_Bf, ROFF_LAYOUT, 0 }, /* Ef */
1.4     ! kristaps  167: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Em */ /* XXX needs arg */
        !           168:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Eo */
        !           169: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Fx */
        !           170:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ms */
1.1       kristaps  171:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* No */
1.4     ! kristaps  172: /*Ok*/ {     roff_Ns, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ns */
        !           173: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Nx */
        !           174: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ox */
1.1       kristaps  175:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Pc */
                    176:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Pf */
                    177:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Po */
1.4     ! kristaps  178: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Pq */
1.1       kristaps  179:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Qc */
1.4     ! kristaps  180: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Ql */
1.1       kristaps  181:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Qo */
1.4     ! kristaps  182: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Qq */
1.1       kristaps  183:        {   roff_noop, NULL, roffparent_Re, NULL, ROFF_Rs, ROFF_LAYOUT, 0 }, /* Re */
                    184:        { roff_layout, NULL, NULL, roffchild_Rs, 0, ROFF_LAYOUT, 0 },   /* Rs */
                    185:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sc */
                    186:        {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* So */
1.4     ! kristaps  187: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE | ROFF_LSCOPE }, /* Sq */
        !           188: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Sm */
        !           189: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sx */
        !           190: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sy */
        !           191: /*Ok*/ {   roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Tn */
        !           192: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Ux */
1.1       kristaps  193:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Xc */
                    194:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Xo */
1.4     ! kristaps  195: /*Ok*/ { roff_layout, NULL, NULL, roffchild_Fo, 0, ROFF_LAYOUT, 0 }, /* Fo */ /* FIXME: section/linebreak. */
        !           196: /*Ok*/ {   roff_noop, NULL, roffparent_Fc, NULL, ROFF_Fo, ROFF_LAYOUT, 0 }, /* Fc */ /* FIXME: section/linebreak. */
        !           197: /*Ok*/ { roff_layout, NULL, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Oo */
        !           198: /*Ok*/ {   roff_noop, NULL, roffparent_Oc, NULL, ROFF_Oo, ROFF_LAYOUT, 0 }, /* Oc */
        !           199:        {        NULL, roffarg_Bk, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Bk */
        !           200:        {        NULL, NULL, NULL, NULL, ROFF_Bk, ROFF_LAYOUT, 0 }, /* Ek */
1.3       kristaps  201: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Bt */
1.1       kristaps  202:        {        NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Hf */
1.3       kristaps  203: /*Ok*/ {   roff_depr, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Fr */
                    204: /*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ud */
1.1       kristaps  205:        };
                    206:
                    207: #define        ROFF_VALUE      (1 << 0)
                    208:
                    209: static const int tokenargs[ROFF_ARGMAX] = {
                    210:        0,              0,              0,              0,
                    211:        0,              ROFF_VALUE,     ROFF_VALUE,     0,
                    212:        0,              0,              0,              0,
                    213:        0,              0,              0,              0,
                    214:        0,              0,              ROFF_VALUE,     0,
                    215:        0,              ROFF_VALUE,     0,              0,
                    216:        0,              0,              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:        };
                    226:
                    227: const  char *const toknamesp[ROFF_MAX] = {
                    228:        "\\\"",         "Dd",           "Dt",           "Os",
                    229:        "Sh",           "Ss",           "Pp",           "D1",
                    230:        "Dl",           "Bd",           "Ed",           "Bl",
                    231:        "El",           "It",           "Ad",           "An",
                    232:        "Ar",           "Cd",           "Cm",           "Dv",
                    233:        "Er",           "Ev",           "Ex",           "Fa",
                    234:        "Fd",           "Fl",           "Fn",           "Ft",
                    235:        "Ic",           "In",           "Li",           "Nd",
                    236:        "Nm",           "Op",           "Ot",           "Pa",
                    237:        "Rv",           "St",           "Va",           "Vt",
                    238:        /* LINTED */
                    239:        "Xr",           "\%A",          "\%B",          "\%D",
                    240:        /* LINTED */
                    241:        "\%I",          "\%J",          "\%N",          "\%O",
                    242:        /* LINTED */
                    243:        "\%P",          "\%R",          "\%T",          "\%V",
                    244:        "Ac",           "Ao",           "Aq",           "At",
                    245:        "Bc",           "Bf",           "Bo",           "Bq",
                    246:        "Bsx",          "Bx",           "Db",           "Dc",
                    247:        "Do",           "Dq",           "Ec",           "Ef",
                    248:        "Em",           "Eo",           "Fx",           "Ms",
                    249:        "No",           "Ns",           "Nx",           "Ox",
                    250:        "Pc",           "Pf",           "Po",           "Pq",
                    251:        "Qc",           "Ql",           "Qo",           "Qq",
                    252:        "Re",           "Rs",           "Sc",           "So",
                    253:        "Sq",           "Sm",           "Sx",           "Sy",
                    254:        "Tn",           "Ux",           "Xc",           "Xo",
                    255:        "Fo",           "Fc",           "Oo",           "Oc",
                    256:        "Bk",           "Ek",           "Bt",           "Hf",
                    257:        "Fr",           "Ud",
                    258:        };
                    259:
                    260: const  char *const tokargnamesp[ROFF_ARGMAX] = {
                    261:        "split",                "nosplit",              "ragged",
                    262:        "unfilled",             "literal",              "file",
                    263:        "offset",               "bullet",               "dash",
                    264:        "hyphen",               "item",                 "enum",
                    265:        "tag",                  "diag",                 "hang",
                    266:        "ohang",                "inset",                "column",
                    267:        "width",                "compact",              "std",
                    268:        "p1003.1-88",           "p1003.1-90",           "p1003.1-96",
                    269:        "p1003.1-2001",         "p1003.1-2004",         "p1003.1",
                    270:        "p1003.1b",             "p1003.1b-93",          "p1003.1c-95",
                    271:        "p1003.1g-2000",        "p1003.2-92",           "p1387.2-95",
                    272:        "p1003.2",              "p1387.2",              "isoC-90",
                    273:        "isoC-amd1",            "isoC-tcor1",           "isoC-tcor2",
                    274:        "isoC-99",              "ansiC",                "ansiC-89",
                    275:        "ansiC-99",             "ieee754",              "iso8802-3",
                    276:        "xpg3",                 "xpg4",                 "xpg4.2",
                    277:        "xpg4.3",               "xbd5",                 "xcu5",
                    278:        "xsh5",                 "xns5",                 "xns5.2d2.0",
                    279:        "xcurses4.2",           "susv2",                "susv3",
                    280:        "svid4",                "filled",               "words",
                    281:        };
                    282:
                    283: const  char *const *toknames = toknamesp;
                    284: const  char *const *tokargnames = tokargnamesp;
                    285:
                    286: __END_DECLS
                    287:
                    288: #endif /*!ROFF_H*/

CVSweb