/* ------------------------------------------------------------------------ @NAME : bibtex_ast.c @DESCRIPTION: Data and functions for internal display/manipulation of AST nodes. (Stuff for external consumption, and for processing whole trees, is to be found in traversal.c.) @GLOBALS : @CREATED : 1997/08/12, Greg Ward @MODIFIED : @VERSION : $Id: bibtex_ast.c,v 1.6 1999/11/29 01:13:10 greg Rel $ @COPYRIGHT : Copyright (c) 1996-99 by Gregory P. Ward. All rights reserved. This file is part of the btparse library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. -------------------------------------------------------------------------- */ /*#include "bt_config.h"*/ #include "btparse.h" #include "prototypes.h" /*#include "my_dmalloc.h"*/ const char *nodetype_names[] = { "bogus", "entry", "key", "field", "string", "number", "macro" }; static void dump (AST *root, int depth) { AST *cur; if (root == NULL) { printf ("[empty]\n"); return; } cur = root; while (cur != NULL) { printf ("%*s[%s]: ", 2*depth, "", nodetype_names[cur->nodetype]); if (cur->text != NULL) printf ("(%s)\n", cur->text); else printf ("(null)\n"); if (cur->down != NULL) dump (cur->down, depth+1); cur = cur->right; } } void dump_ast (char *msg, AST *root) { if (msg != NULL) printf ("%s", msg); dump (root, 0); printf ("\n"); }