version 1.42, 2017/07/08 17:52:49 |
version 1.43, 2018/12/13 02:06:07 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2014, 2017 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
|
|
enum tbl_part { |
|
TBL_PART_OPTS, /* in options (first line) */ |
|
TBL_PART_LAYOUT, /* describing layout */ |
|
TBL_PART_DATA, /* creating data rows */ |
|
TBL_PART_CDATA /* continue previous row */ |
|
}; |
|
|
|
struct tbl_node { |
|
struct mparse *parse; /* parse point */ |
|
int pos; /* invocation column */ |
|
int line; /* invocation line */ |
|
enum tbl_part part; |
|
struct tbl_opts opts; |
|
struct tbl_row *first_row; |
|
struct tbl_row *last_row; |
|
struct tbl_span *first_span; |
|
struct tbl_span *current_span; |
|
struct tbl_span *last_span; |
|
struct tbl_node *next; |
|
}; |
|
|
|
struct eqn_node { |
struct eqn_node { |
struct mparse *parse; /* main parser, for error reporting */ |
struct mparse *parse; /* main parser, for error reporting */ |
struct roff_node *node; /* syntax tree of this equation */ |
struct roff_node *node; /* syntax tree of this equation */ |
|
|
}; |
}; |
|
|
|
|
struct tbl_node *tbl_alloc(int, int, struct mparse *); |
|
void tbl_restart(int, int, struct tbl_node *); |
|
void tbl_free(struct tbl_node *); |
|
void tbl_reset(struct tbl_node *); |
|
void tbl_read(struct tbl_node *, int, const char *, int); |
|
void tbl_option(struct tbl_node *, int, const char *, int *); |
|
void tbl_layout(struct tbl_node *, int, const char *, int); |
|
void tbl_data(struct tbl_node *, int, const char *, int); |
|
void tbl_cdata(struct tbl_node *, int, const char *, int); |
|
const struct tbl_span *tbl_span(struct tbl_node *); |
|
int tbl_end(struct tbl_node *); |
|
struct eqn_node *eqn_alloc(struct mparse *); |
struct eqn_node *eqn_alloc(struct mparse *); |
void eqn_box_free(struct eqn_box *); |
void eqn_box_free(struct eqn_box *); |
void eqn_free(struct eqn_node *); |
void eqn_free(struct eqn_node *); |