version 1.10, 2008/11/27 13:29:44 |
version 1.11, 2008/11/27 14:02:41 |
|
|
|
|
/* FIXME: ; : } ) (etc.) after text macros? */ |
/* FIXME: ; : } ) (etc.) after text macros? */ |
|
|
#define ROFF_MAXARG 10 |
/* FIXME: NAME section needs specific elements. */ |
|
|
|
#define ROFF_MAXARG 32 |
|
|
enum roffd { |
enum roffd { |
ROFF_ENTER = 0, |
ROFF_ENTER = 0, |
ROFF_EXIT |
ROFF_EXIT |
|
|
enum rofftype { |
enum rofftype { |
ROFF_COMMENT, |
ROFF_COMMENT, |
ROFF_TEXT, |
ROFF_TEXT, |
ROFF_LAYOUT |
ROFF_LAYOUT, |
|
ROFF_SPECIAL |
}; |
}; |
|
|
#define ROFFCALL_ARGS \ |
#define ROFFCALL_ARGS \ |
Line 107 static int roff_layout(ROFFCALL_ARGS); |
|
Line 110 static int roff_layout(ROFFCALL_ARGS); |
|
static int roff_text(ROFFCALL_ARGS); |
static int roff_text(ROFFCALL_ARGS); |
static int roff_comment(ROFFCALL_ARGS); |
static int roff_comment(ROFFCALL_ARGS); |
static int roff_close(ROFFCALL_ARGS); |
static int roff_close(ROFFCALL_ARGS); |
|
static int roff_special(ROFFCALL_ARGS); |
|
|
static struct roffnode *roffnode_new(int, struct rofftree *); |
static struct roffnode *roffnode_new(int, struct rofftree *); |
static void roffnode_free(int, struct rofftree *); |
static void roffnode_free(int, struct rofftree *); |
Line 224 static const struct rofftok tokens[ROFF_MAX] = { |
|
Line 228 static const struct rofftok tokens[ROFF_MAX] = { |
|
{ NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Bq */ |
{ NULL, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Bq */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bsx */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bsx */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bx */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED }, /* Bx */ |
{ NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Db */ /* XXX */ |
{roff_special, NULL, NULL, NULL, 0, ROFF_SPECIAL, 0 }, /* Db */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dc */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dc */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Do */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Do */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dq */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Dq */ |
Line 251 static const struct rofftok tokens[ROFF_MAX] = { |
|
Line 255 static const struct rofftok tokens[ROFF_MAX] = { |
|
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sc */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sc */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* So */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* So */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sq */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sq */ |
{ NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Sm */ |
{roff_special, NULL, NULL, NULL, 0, ROFF_SPECIAL, 0 }, /* Sm */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sx */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sx */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sy */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Sy */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Tn */ |
{ roff_text, NULL, NULL, NULL, 0, ROFF_TEXT, ROFF_PARSED | ROFF_CALLABLE }, /* Tn */ |
Line 1109 roff_close(ROFFCALL_ARGS) |
|
Line 1113 roff_close(ROFFCALL_ARGS) |
|
{ |
{ |
|
|
return(1); |
return(1); |
|
} |
|
|
|
|
|
/* ARGSUSED */ |
|
static int |
|
roff_special(ROFFCALL_ARGS) |
|
{ |
|
|
|
return((*tree->cb->roffspecial)(tok)); |
} |
} |