Go to the source code of this file.
|
| long | intcmp (long a, long b) |
| |
| long | is_int (char **s, long *len, long *sgn) |
| |
| long | featcmp (char *str1, char *str2) |
| |
| char * | heap_ncopy_string (char *s, int n) |
| |
| char * | heap_copy_string (char *s) |
| |
| char * | stack_copy_string (char *s) |
| |
| ptr_node | general_insert (long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag) |
| |
| void | heap_insert_copystr (char *keystr, ptr_node *tree, GENERIC info) |
| |
| void | stack_insert_copystr (char *keystr, ptr_node *tree, GENERIC info) |
| |
| ptr_node | heap_insert (long comp, char *keystr, ptr_node *tree, GENERIC info) |
| |
| ptr_node | stack_insert (long comp, char *keystr, ptr_node *tree, GENERIC info) |
| |
| ptr_node | bk_stack_insert (long comp, char *keystr, ptr_node *tree, GENERIC info) |
| |
| ptr_node | bk2_stack_insert (long comp, char *keystr, ptr_node *tree, GENERIC info) |
| |
| ptr_node | find (long comp, char *keystr, ptr_node tree) |
| |
| ptr_node | find_data (GENERIC p, ptr_node t) |
| |
| void | delete_attr (char *s, ptr_node *n) |
| |
Definition at line 327 of file trees.c.
References FALSE, general_insert(), and STACK.
ptr_node general_insert(long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag)
Definition at line 309 of file trees.c.
References FALSE, general_insert(), and STACK.
ptr_node general_insert(long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag)
| void delete_attr |
( |
char * |
s, |
|
|
ptr_node * |
n |
|
) |
| |
Definition at line 466 of file trees.c.
References wl_node::data, featcmp(), FEATCMP, heap_insert(), wl_node::key, wl_node::left, and wl_node::right.
479 else if ((*n)->left) {
ptr_node heap_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
long featcmp(char *str1, char *str2)
void delete_attr(char *s, ptr_node *n)
| long featcmp |
( |
char * |
str1, |
|
|
char * |
str2 |
|
) |
| |
Definition at line 89 of file trees.c.
References is_int().
92 long len1,len2,sgn1,sgn2;
100 if(*(str1+1)==0 && *(str2+1)==0)
101 return *str1 - *str2;
107 if (
is_int(&s1,&len1,&sgn1)) {
108 if (
is_int(&s2,&len2,&sgn2)) {
109 if (sgn1!=sgn2)
return (sgn2-sgn1);
110 if (len1!=len2)
return (len1-len2);
111 return strcmp(s1,s2);
117 if (
is_int(&s2,&len2,&sgn2))
120 return strcmp(s1,s2);
long is_int(char **s, long *len, long *sgn)
Definition at line 341 of file trees.c.
References Errorline(), FALSE, featcmp(), FEATCMP, intcmp(), INTCMP, wl_node::left, NULL, wl_node::right, STRCMP, and TRUE.
362 cmp =
intcmp((
long)keystr,(
long) (tree)->key);
364 cmp =
featcmp(keystr,(tree)->key);
366 cmp = strcmp(keystr,(tree)->key);
368 Errorline(
"Bad comp in general_insert.\n");
void Errorline(char *format,...)
long intcmp(long a, long b)
long featcmp(char *str1, char *str2)
| ptr_node general_insert |
( |
long |
comp, |
|
|
char * |
keystr, |
|
|
ptr_node * |
tree, |
|
|
GENERIC |
info, |
|
|
long |
heapflag, |
|
|
long |
copystr, |
|
|
long |
bkflag |
|
) |
| |
Definition at line 184 of file trees.c.
References Errorline(), FALSE, featcmp(), FEATCMP, HEAP, HEAP_ALLOC, heap_copy_string(), int_ptr, intcmp(), INTCMP, wl_node::key, NULL, push_ptr_value(), push_ptr_value_global(), STACK_ALLOC, STRCMP, and TRUE.
210 cmp =
intcmp((
long)keystr,(
long) (*tree)->key);
212 cmp =
featcmp(keystr,(*tree)->key);
214 cmp = strcmp(keystr,(*tree)->key);
216 Errorline(
"Bad comp in general_insert.\n");
219 tree=(&((*tree)->left));
223 Errorline(
"attempt to overwrite an existing feature; ignored.\n");
230 tree=(&((*tree)->right));
void push_ptr_value(type_ptr t, GENERIC *p)
push_ptr_value
void push_ptr_value_global(type_ptr t, GENERIC *p)
push_ptr_value_global
char * heap_copy_string(char *s)
void Errorline(char *format,...)
long intcmp(long a, long b)
long featcmp(char *str1, char *str2)
| char* heap_copy_string |
( |
char * |
s | ) |
|
Definition at line 276 of file trees.c.
References FALSE, general_insert(), and HEAP.
ptr_node general_insert(long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag)
Definition at line 245 of file trees.c.
References FEATCMP, general_insert(), HEAP, and TRUE.
ptr_node general_insert(long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag)
| char* heap_ncopy_string |
( |
char * |
s, |
|
|
int |
n |
|
) |
| |
| long intcmp |
( |
long |
a, |
|
|
long |
b |
|
) |
| |
Definition at line 12 of file trees.c.
18 printf(
"intcmp a = %ld b = %ld a - b = %ld\n", a ,b , a - b);
| long is_int |
( |
char ** |
s, |
|
|
long * |
len, |
|
|
long * |
sgn |
|
) |
| |
Definition at line 27 of file trees.c.
References FALSE, and TRUE.
35 printf(
"is_int *s = %s\n",*s);
45 if ((*sgn=(*stmp==
'-'))) {
50 printf(
"is_int = FALSE\n");
58 printf(
"is_int = FALSE\n");
62 while (*stmp==
'0') stmp++;
65 if (*stmp<'0' || *stmp>
'9')
68 printf(
"is_int = FALSE\n");
77 printf(
"is_int = TRUE *len = %ld *sgn = %ld *s = %s\n",*len,*sgn,*s);
| char* stack_copy_string |
( |
char * |
s | ) |
|
Definition at line 291 of file trees.c.
References FALSE, general_insert(), and STACK.
ptr_node general_insert(long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag)
Definition at line 260 of file trees.c.
References FEATCMP, general_insert(), STACK, and TRUE.
ptr_node general_insert(long comp, char *keystr, ptr_node *tree, GENERIC info, long heapflag, long copystr, long bkflag)