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

Diff for /mandoc/mdoc.h between version 1.28 and 1.29

version 1.28, 2009/01/20 13:44:05 version 1.29, 2009/02/20 07:43:15
Line 195 
Line 195 
 #define MDOC_Symbolic    61  #define MDOC_Symbolic    61
 #define MDOC_ARG_MAX     62  #define MDOC_ARG_MAX     62
   
   /* Warnings are either syntax or groff-compatibility. */
 enum    mdoc_warn {  enum    mdoc_warn {
         WARN_SYNTAX,            /* Syntax warn (at line/col). */          WARN_SYNTAX,
         WARN_COMPAT             /* Groff compat warn (at line/col). */          WARN_COMPAT
 };  };
   
 /* Possible values for the `At' macro. */  /* Possible values for the `At' macro. */
Line 226  struct mdoc_arg {
Line 227  struct mdoc_arg {
         char            **value;          char            **value;
 };  };
   
 /*  
  * Simplified grammar of syntax tree:  
  *  
  * MDOC_ROOT: root of tree  
  * MDOC_TEXT: free-form text  
  * MDOC_ELEM: elem [args] MDOC_TEXT...  
  * MDOC_BLOCK, MDOC_HEAD, MDOC_BODY, MDOC_TAIL:  
  *   MDOC_BLOCK:  
  *     MDOC_HEAD [args] (MDOC_TEXT|MDOC_ELEM|MDOC_BLOCK)...  
  *     MDOC_BODY (MDOC_TEXT|MDOC_ELEM|MDOC_BLOCK)...  
  *     MDOC_TAIL (optional) (MDOC_TEXT|MDOC_ELEM|MDOC_BLOCK)...  
  */  
   
 /* Type of a syntax node. */  /* Type of a syntax node. */
 enum    mdoc_type {  enum    mdoc_type {
         MDOC_TEXT,          MDOC_TEXT,
Line 340  enum mdoc_arch {
Line 328  enum mdoc_arch {
         ARCH_zaurus          ARCH_zaurus
 };  };
   
 /* Meta-information from prologue. */  /* Information from prologue. */
 struct  mdoc_meta {  struct  mdoc_meta {
         enum mdoc_msec    msec;          enum mdoc_msec    msec;
         enum mdoc_vol     vol;          enum mdoc_vol     vol;
Line 351  struct mdoc_meta {
Line 339  struct mdoc_meta {
         char             *name;          char             *name;
 };  };
   
   /* Text-only node. */
 struct  mdoc_text {  struct  mdoc_text {
         char             *string;          char             *string;
 };  };
   
   /* Block (scoped) node. */
 struct  mdoc_block {  struct  mdoc_block {
         size_t            argc;          size_t            argc;
         struct mdoc_arg  *argv;          struct mdoc_arg  *argv;
Line 363  struct mdoc_block {
Line 353  struct mdoc_block {
         struct mdoc_node *tail;          struct mdoc_node *tail;
 };  };
   
   /* In-line element node. */
 struct  mdoc_elem {  struct  mdoc_elem {
         size_t            sz;          size_t            sz;
         char            **args;          char            **args;
Line 370  struct mdoc_elem {
Line 361  struct mdoc_elem {
         struct mdoc_arg  *argv;          struct mdoc_arg  *argv;
 };  };
   
   /* Typed nodes of an AST node. */
 union   mdoc_data {  union   mdoc_data {
         struct mdoc_text  text;          struct mdoc_text  text;
         struct mdoc_elem  elem;          struct mdoc_elem  elem;
         struct mdoc_block block;          struct mdoc_block block;
 };  };
   
 /* Syntax node in parse tree. */  /* Node in AST. */
 struct  mdoc_node {  struct  mdoc_node {
         struct mdoc_node *parent;          struct mdoc_node *parent;
         struct mdoc_node *child;          struct mdoc_node *child;
Line 401  struct mdoc_cb {
Line 393  struct mdoc_cb {
                         enum mdoc_warn, const char *);                          enum mdoc_warn, const char *);
 };  };
   
   /* Global table of macro names (`Bd', `Ed', etc.). */
 extern  const char *const *mdoc_macronames;  extern  const char *const *mdoc_macronames;
   
   /* Global table of argument names (`column', `tag', etc.). */
 extern  const char *const *mdoc_argnames;  extern  const char *const *mdoc_argnames;
   
 __BEGIN_DECLS  __BEGIN_DECLS
Line 414  void     mdoc_free(struct mdoc *);
Line 409  void     mdoc_free(struct mdoc *);
 /* Allocate a new parser instance. */  /* Allocate a new parser instance. */
 struct  mdoc     *mdoc_alloc(void *data, const struct mdoc_cb *);  struct  mdoc     *mdoc_alloc(void *data, const struct mdoc_cb *);
   
 /* Parse a single line (boolean retval). */  /* Parse a single line in a stream (boolean retval). */
 int               mdoc_parseln(struct mdoc *, int, char *buf);  int               mdoc_parseln(struct mdoc *, int, char *buf);
   
 /* Get result first node. */  /* Get result first node (after mdoc_endparse!). */
 const struct mdoc_node *mdoc_node(struct mdoc *);  const struct mdoc_node *mdoc_node(struct mdoc *);
   
 /* Get result meta-information. */  /* Get result meta-information (after mdoc_endparse!). */
 const struct mdoc_meta *mdoc_meta(struct mdoc *);  const struct mdoc_meta *mdoc_meta(struct mdoc *);
   
 /* Signal end of parse sequence (boolean retval). */  /* Signal end of parse sequence (boolean retval). */

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

CVSweb