GCC Middle and Back End API Reference
tree-browser.c File Reference

Data Structures

struct  tb_command
struct  tb_tree_code
struct  tree_upper_hasher

Typedefs

typedef enum TB_Comm_code TB_CODE

Enumerations

enum  TB_Comm_code { TB_UNUSED_COMMAND }

Functions

static long TB_getline (char **, long *, FILE *)
static TB_CODE TB_get_command (char *)
static enum tree_code TB_get_tree_code (char *)
static tree find_node_with_code (tree *, int *, void *)
static tree store_child_info (tree *, int *, void *)
static void TB_update_up (tree)
static tree TB_current_chain_node (tree)
static tree TB_prev_expr (tree)
static tree TB_next_expr (tree)
static tree TB_up_expr (tree)
static tree TB_first_in_bind (tree)
static tree TB_last_in_bind (tree)
static tree TB_history_prev (void)
void browse_tree (tree)
void browse_tree ()
static tree TB_first_in_bind ()
static tree TB_last_in_bind ()
static tree TB_up_expr ()
static tree TB_prev_expr ()
static tree TB_next_expr ()
static tree TB_current_chain_node ()
static void TB_update_up ()
static TB_CODE TB_get_command ()
static enum tree_code TB_get_tree_code ()
static long TB_getline ()

Variables

static struct tb_command tb_commands []
static struct tb_tree_code tb_tree_codes []
static hash_table
< tree_upper_hasher
TB_up_ht
static vec< tree, va_gc > * TB_history_stack
static int TB_verbose = 1

Typedef Documentation

typedef enum TB_Comm_code TB_CODE

Enumeration Type Documentation

Enumerator:
TB_UNUSED_COMMAND 

Function Documentation

void browse_tree ( tree  )
   FIXME: To be declared in a .h file.  
void browse_tree ( )
   Entry point in the Tree Browser.  
     Store in a hashtable information about previous and upper statements.  
           EOF.  
           Get a new command.  Otherwise the user just pressed enter, and thus
           she expects the last command to be reexecuted.  
                 This command takes another argument: the element number:
                 for example "elt 1".  
                 This command takes another argument: the element number:
                 for example "elt 1".  
               Search in the subtree a node with the given code.  
             This command is a little bit special, since it deals with history
             stack.  For this reason it should keep the "head = ..." statement
             and not use TB_MOVE_HEAD.  
             Don't go further if it's the last node in this chain.  
             Go up to the current function declaration.  
             Display a help message.  
             Just exit from this function.  
static tree find_node_with_code ( tree tp,
int *  walk_subtrees,
void *  data 
)
static
   Find a node with a given code.  This function is used as an argument to
   walk_tree.  

References errno.

static tree store_child_info ( tree tp,
int *  walk_subtrees,
void *  data 
)
static
   For each node store in its children nodes that the current node is their
   parent.  This function is used by walk_tree.  
     'node' is the parent of 'TREE_OPERAND (node, *)'.  
     Never stop walk_tree.  
static tree TB_current_chain_node ( tree  )
static
static tree TB_current_chain_node ( )
static
static tree TB_first_in_bind ( tree  )
static
static tree TB_first_in_bind ( )
static
   Search the first node in this BIND_EXPR.  
static TB_CODE TB_get_command ( char *  )
static
static TB_CODE TB_get_command ( )
static
   Parse the input string for determining the command the user asked for.  
           Here we just determined the command.  If this command takes
           an argument, then the argument is determined later.  
     Not a valid command.  

References comp, and strlen().

static enum tree_code TB_get_tree_code ( char *  )
static
static enum tree_code TB_get_tree_code ( )
static
   Parse the input string for determining the tree code.  
     This isn't a valid code.  
static long TB_getline ( char **  ,
long *  ,
FILE *   
)
static
   Function declarations.  
static long TB_getline ( )
static
   Read up to (and including) a '\n' from STREAM into *LINEPTR
   (and null-terminate it). *LINEPTR is a pointer returned from malloc
   (or NULL), pointing to *N characters of space.  It is realloc'd as
   necessary.  Returns the number of characters read (not including the
   null terminator), or -1 on error or EOF.
   This function comes from sed (and is supposed to be a portable version
   of getline).  
     Make sure we have a line buffer to start with.  
         Need to enlarge the line buffer.  
     Return a partial line since we got an error in the middle.  
static tree TB_history_prev ( )
static
   Returns a pointer to the last visited node.  
static tree TB_last_in_bind ( tree  )
static
static tree TB_last_in_bind ( )
static
   Search the last node in this BIND_EXPR.  
static tree TB_next_expr ( tree  )
static
static tree TB_next_expr ( )
static
   Search the next expression in this BIND_EXPR.  
static tree TB_prev_expr ( tree  )
static
static tree TB_prev_expr ( )
static
   Search the previous expression in this BIND_EXPR.  
static tree TB_up_expr ( tree  )
static
static tree TB_up_expr ( )
static
   Search the parent expression for this node.  
static void TB_update_up ( tree  )
static
static void TB_update_up ( )
static
   Update information about upper expressions in the hash table.  
         Walk function's body.  
         Walk rest of the chain.  

Variable Documentation

struct tb_command tb_commands[]
static
Initial value:
{
#include "tree-browser.def"
}
vec<tree, va_gc>* TB_history_stack
static
struct tb_tree_code tb_tree_codes[]
static
Initial value:
{
#include "all-tree.def"
}
hash_table<tree_upper_hasher> TB_up_ht
static
   Static variables.  
int TB_verbose = 1
static