mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
  r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines
  Recorded merge of revisions 81029 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
    Untabify C files. Will watch buildbots.
  ........
................
		
	
			
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
/* List a node on a file */
 | 
						|
 | 
						|
#include "pgenheaders.h"
 | 
						|
#include "token.h"
 | 
						|
#include "node.h"
 | 
						|
 | 
						|
/* Forward */
 | 
						|
static void list1node(FILE *, node *);
 | 
						|
static void listnode(FILE *, node *);
 | 
						|
 | 
						|
void
 | 
						|
PyNode_ListTree(node *n)
 | 
						|
{
 | 
						|
    listnode(stdout, n);
 | 
						|
}
 | 
						|
 | 
						|
static int level, atbol;
 | 
						|
 | 
						|
static void
 | 
						|
listnode(FILE *fp, node *n)
 | 
						|
{
 | 
						|
    level = 0;
 | 
						|
    atbol = 1;
 | 
						|
    list1node(fp, n);
 | 
						|
}
 | 
						|
 | 
						|
static void
 | 
						|
list1node(FILE *fp, node *n)
 | 
						|
{
 | 
						|
    if (n == 0)
 | 
						|
        return;
 | 
						|
    if (ISNONTERMINAL(TYPE(n))) {
 | 
						|
        int i;
 | 
						|
        for (i = 0; i < NCH(n); i++)
 | 
						|
            list1node(fp, CHILD(n, i));
 | 
						|
    }
 | 
						|
    else if (ISTERMINAL(TYPE(n))) {
 | 
						|
        switch (TYPE(n)) {
 | 
						|
        case INDENT:
 | 
						|
            ++level;
 | 
						|
            break;
 | 
						|
        case DEDENT:
 | 
						|
            --level;
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            if (atbol) {
 | 
						|
                int i;
 | 
						|
                for (i = 0; i < level; ++i)
 | 
						|
                    fprintf(fp, "\t");
 | 
						|
                atbol = 0;
 | 
						|
            }
 | 
						|
            if (TYPE(n) == NEWLINE) {
 | 
						|
                if (STR(n) != NULL)
 | 
						|
                    fprintf(fp, "%s", STR(n));
 | 
						|
                fprintf(fp, "\n");
 | 
						|
                atbol = 1;
 | 
						|
            }
 | 
						|
            else
 | 
						|
                fprintf(fp, "%s ", STR(n));
 | 
						|
            break;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    else
 | 
						|
        fprintf(fp, "? ");
 | 
						|
}
 |