|
|
#include "mit-copyright.h"
#include "node.h"
Go to the source code of this file.
Data Structures | |
struct | _bunch_of_nodes |
Defines | |
#define | NODE_BATCH_SIZE 100 |
Functions | |
void | node_DestroyAllNodes () |
Node * | node_create_string_constant (int opcode, string text) |
Node * | node_create_noary (int opcode) |
Node * | node_create_unary (int opcode, Node *arg) |
Node * | node_create_binary (int opcode, Node *first_arg, Node *second_arg) |
Node * | reverse_list_of_nodes (Node *list) |
|
Definition at line 23 of file node.c. Referenced by node_DestroyAllNodes(). |
|
Definition at line 160 of file node.c. References _Node::d, _Node::first, Node, _Node::nodes, and _Node::second. 00164 { 00165 Node *n; 00166 00167 n = node_create(opcode); 00168 n->d.nodes.first = first_arg; 00169 n->d.nodes.second = second_arg; 00170 return (n); 00171 }
|
|
Definition at line 138 of file node.c. References Node. 00140 { 00141 Node *n; 00142 00143 n = node_create(opcode); 00144 return (n); 00145 }
|
|
Definition at line 126 of file node.c. References _Node::d, Node, and _Node::string_constant. 00129 { 00130 Node *n; 00131 00132 n = node_create(opcode); 00133 n->d.string_constant = text; 00134 return (n); 00135 }
|
|
Definition at line 148 of file node.c. References _Node::d, _Node::first, Node, and _Node::nodes. 00151 { 00152 Node *n; 00153 00154 n = node_create(opcode); 00155 n->d.nodes.first = arg; 00156 return (n); 00157 }
|
|
Definition at line 95 of file node.c. References NODE_BATCH_SIZE. Referenced by parse_buffer(), and parse_file(). 00096 { 00097 struct _bunch_of_nodes *next_bunch; 00098 int i, last_node_used_in_this_bunch; 00099 00100 while (nodes) { 00101 next_bunch = nodes->next_bunch; 00102 last_node_used_in_this_bunch = next_bunch ? 00103 NODE_BATCH_SIZE - 1 : last_node_in_current_bunch_used; 00104 for (i = 0; i <= last_node_used_in_this_bunch; i++) { 00105 if (nodes->nodes[i].opcode == STRING_CONSTANT_OPCODE) 00106 free(nodes->nodes[i].d.string_constant); 00107 else if (nodes->nodes[i].opcode == VARREF_OPCODE) 00108 free(nodes->nodes[i].d.string_constant); 00109 else if (nodes->nodes[i].opcode == VARNAME_OPCODE) 00110 free(nodes->nodes[i].d.string_constant); 00111 } 00112 free(nodes); 00113 nodes = next_bunch; 00114 } 00115 00116 current_bunch = nodes; 00117 }
|
|
Definition at line 189 of file node.c. References _Node::next, and Node. 00191 { 00192 Node *next_node; 00193 Node *head = NULL; 00194 00195 while (list) { 00196 next_node = list->next; 00197 00198 /* 00199 * Add the node list to the beginning of linked list head: 00200 */ 00201 list->next = head; 00202 head = list; 00203 00204 list = next_node; 00205 } 00206 00207 return (head); 00208 }
|
Last updated at Tue Dec 18 21:07:42 PST 2007. | This site and project hosted by... |