summaryrefslogtreecommitdiffstats
path: root/libroff.h
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-02-06 20:36:36 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-02-06 20:36:36 +0000
commit858bb68c9059fe5b8f8f613dab2761233ff36ba7 (patch)
tree570b9749d9aa62c9ea90cef7bcc920ac1ed44829 /libroff.h
parent07e8fdac90d41ba0de90ac17f5081f6feb4b4b99 (diff)
downloadmandoc-858bb68c9059fe5b8f8f613dab2761233ff36ba7.tar.gz
Add initial EQN support to mandoc. This parses, then throws away, data
between EQ and EN roff blocks. EQN is different from TBL in that data after .EQ is unilaterally considered an equation until an .EN. Thus, there's no need to jump through hoops in having table spans and so on. This is ONLY the parse code framework in libroff. EQN is not yet passed into the backends.
Diffstat (limited to 'libroff.h')
-rw-r--r--libroff.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/libroff.h b/libroff.h
index 9bf9bf9c..c882d487 100644
--- a/libroff.h
+++ b/libroff.h
@@ -43,6 +43,13 @@ struct tbl_node {
struct tbl_node *next;
};
+struct eqn_node {
+ int pos; /* invocation column */
+ int line; /* invocation line */
+ struct eqn eqn;
+ struct eqn_node *next;
+};
+
#define TBL_MSG(tblp, type, line, col) \
(*(tblp)->msg)((type), (tblp)->data, (line), (col), NULL)
@@ -57,6 +64,10 @@ int tbl_data(struct tbl_node *, int, const char *);
int tbl_cdata(struct tbl_node *, int, const char *);
const struct tbl_span *tbl_span(struct tbl_node *);
void tbl_end(struct tbl_node *);
+struct eqn_node *eqn_alloc(int, int);
+void eqn_end(struct eqn_node *);
+void eqn_free(struct eqn_node *);
+enum rofferr eqn_read(struct eqn_node **, int, const char *, int);
__END_DECLS