]> git.cameronkatri.com Git - mandoc.git/blobdiff - tree.c
Complete eqn.7 parsing. Features all productions from the original 1975
[mandoc.git] / tree.c
diff --git a/tree.c b/tree.c
index 1c03c716347aa62034cd66a1b6b10dc8b0596f3a..09ebca30770e63195cba626a30ca963ed747e5dd 100644 (file)
--- a/tree.c
+++ b/tree.c
@@ -1,4 +1,4 @@
-/*     $Id: tree.c,v 1.42 2011/07/21 14:13:00 kristaps Exp $ */
+/*     $Id: tree.c,v 1.44 2011/07/21 23:30:39 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -19,6 +19,7 @@
 #endif
 
 #include <assert.h>
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
@@ -270,17 +271,23 @@ print_box(const struct eqn_box *ep, int indent)
 
        switch (ep->type) {
        case (EQN_ROOT):
-               printf("eqn-root(%d, %d, %d)\n", 
+               printf("eqn-root(%d, %d, %d, %d)\n", 
+                       EQN_DEFSIZE == ep->size ? 0 : ep->size,
                        ep->pos, ep->font, ep->mark);
-               print_box(ep->child, indent + 1);
+               print_box(ep->first, indent + 1);
                break;
        case (EQN_SUBEXPR):
-               printf("eqn-subxpr(%d, %d, %d)\n", 
-                       ep->pos, ep->font, ep->mark);
-               print_box(ep->child, indent + 1);
+               printf("eqn-subxpr(%d, %d, %d, %d, %d, %d, \"%s\", \"%s\")\n", 
+                       EQN_DEFSIZE == ep->size ? 0 : ep->size,
+                       ep->pos, ep->font, ep->mark,
+                       ep->pile, ep->above,
+                       ep->left ? ep->left : "",
+                       ep->right ? ep->right : "");
+               print_box(ep->first, indent + 1);
                break;
        case (EQN_TEXT):
-               printf("eqn-text(%d, %d, %d): [%s]\n", 
+               printf("eqn-text(%d, %d, %d, %d): [%s]\n", 
+                       EQN_DEFSIZE == ep->size ? 0 : ep->size,
                        ep->pos, ep->font, ep->mark, ep->text);
                break;
        default: