version 1.60, 2009/06/17 10:53:32 |
version 1.72, 2009/10/26 04:09:45 |
|
|
#ifndef MDOC_H |
#ifndef MDOC_H |
#define MDOC_H |
#define MDOC_H |
|
|
#include <time.h> |
|
|
|
/* |
/* |
* This library implements a validating scanner/parser for ``mdoc'' roff |
* This library implements a validating scanner/parser for ``mdoc'' roff |
* macro documents, a.k.a. BSD manual page documents. The mdoc.c file |
* macro documents, a.k.a. BSD manual page documents. The mdoc.c file |
|
|
#define MDOC_En 115 |
#define MDOC_En 115 |
#define MDOC_Dx 116 |
#define MDOC_Dx 116 |
#define MDOC__Q 117 |
#define MDOC__Q 117 |
#define MDOC_MAX 118 |
#define MDOC_br 118 |
|
#define MDOC_sp 119 |
|
#define MDOC__U 120 |
|
#define MDOC_MAX 121 |
|
|
/* What follows is a list of ALL possible macro arguments. */ |
/* What follows is a list of ALL possible macro arguments. */ |
|
|
|
|
#define MDOC_Emphasis 23 |
#define MDOC_Emphasis 23 |
#define MDOC_Symbolic 24 |
#define MDOC_Symbolic 24 |
#define MDOC_Nested 25 |
#define MDOC_Nested 25 |
#define MDOC_ARG_MAX 26 |
#define MDOC_Centred 26 |
|
#define MDOC_ARG_MAX 27 |
|
|
/* Warnings are either syntax or groff-compatibility. */ |
|
enum mdoc_warn { |
|
WARN_SYNTAX, |
|
WARN_COMPAT |
|
}; |
|
|
|
/* Type of a syntax node. */ |
/* Type of a syntax node. */ |
enum mdoc_type { |
enum mdoc_type { |
MDOC_TEXT, |
MDOC_TEXT, |
|
|
SEC_SYNOPSIS, |
SEC_SYNOPSIS, |
SEC_DESCRIPTION, |
SEC_DESCRIPTION, |
SEC_IMPLEMENTATION, |
SEC_IMPLEMENTATION, |
|
SEC_EXIT_STATUS, |
SEC_RETURN_VALUES, |
SEC_RETURN_VALUES, |
SEC_ENVIRONMENT, |
SEC_ENVIRONMENT, |
SEC_FILES, |
SEC_FILES, |
SEC_EXAMPLES, |
SEC_EXAMPLES, |
SEC_DIAGNOSTICS, |
SEC_DIAGNOSTICS, |
|
|
SEC_AUTHORS, |
SEC_AUTHORS, |
SEC_CAVEATS, |
SEC_CAVEATS, |
SEC_BUGS, |
SEC_BUGS, |
|
SEC_SECURITY, |
SEC_CUSTOM /* User-defined. */ |
SEC_CUSTOM /* User-defined. */ |
}; |
}; |
|
|
Line 252 struct mdoc_node { |
|
Line 250 struct mdoc_node { |
|
struct mdoc_node *child; |
struct mdoc_node *child; |
struct mdoc_node *next; |
struct mdoc_node *next; |
struct mdoc_node *prev; |
struct mdoc_node *prev; |
|
int nchild; |
int line; |
int line; |
int pos; |
int pos; |
int tok; |
int tok; |
Line 261 struct mdoc_node { |
|
Line 260 struct mdoc_node { |
|
enum mdoc_type type; |
enum mdoc_type type; |
enum mdoc_sec sec; |
enum mdoc_sec sec; |
|
|
/* FIXME: union/struct this with #defines. */ |
|
struct mdoc_arg *args; /* BLOCK/ELEM */ |
struct mdoc_arg *args; /* BLOCK/ELEM */ |
struct mdoc_node *head; /* BLOCK */ |
struct mdoc_node *head; /* BLOCK */ |
struct mdoc_node *body; /* BLOCK */ |
struct mdoc_node *body; /* BLOCK */ |
Line 275 struct mdoc_node { |
|
Line 273 struct mdoc_node { |
|
#define MDOC_IGN_CHARS (1 << 3) /* Ignore disallowed chars. */ |
#define MDOC_IGN_CHARS (1 << 3) /* Ignore disallowed chars. */ |
|
|
/* Call-backs for parse messages. */ |
/* Call-backs for parse messages. */ |
/* FIXME: unify somehow with man_cb. */ |
|
struct mdoc_cb { |
struct mdoc_cb { |
int (*mdoc_err)(void *, int, int, const char *); |
int (*mdoc_err)(void *, int, int, const char *); |
int (*mdoc_warn)(void *, int, int, |
int (*mdoc_warn)(void *, int, int, const char *); |
enum mdoc_warn, const char *); |
|
}; |
}; |
|
|
/* See mdoc.3 for documentation. */ |
/* See mdoc.3 for documentation. */ |
Line 300 int mdoc_parseln(struct mdoc *, int, char *buf); |
|
Line 297 int mdoc_parseln(struct mdoc *, int, char *buf); |
|
const struct mdoc_node *mdoc_node(const struct mdoc *); |
const struct mdoc_node *mdoc_node(const struct mdoc *); |
const struct mdoc_meta *mdoc_meta(const struct mdoc *); |
const struct mdoc_meta *mdoc_meta(const struct mdoc *); |
int mdoc_endparse(struct mdoc *); |
int mdoc_endparse(struct mdoc *); |
|
|
const char *mdoc_a2att(const char *); |
|
const char *mdoc_a2lib(const char *); |
|
const char *mdoc_a2st(const char *); |
|
|
|
__END_DECLS |
__END_DECLS |
|
|