pair.h File Reference

Header for pair abstract data type. More...

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  pairnode_t
 Associates a key with a given value. More...
struct  pair_t
 key root More...

Defines

#define PAIRNEW(pa)   pa.i = 0; pa.ppan = (pairnode_t *) malloc(0);
 Prepares a green pair for receiving realloc-ation.

Functions

void freepair (pair_t *)
 Destroys pair.
void freepairnode (pairnode_t *)
 Destroys node.
pairnode_taddpair (char *, char *, pair_t *)
 Constructs pair, allocating adherent space (provided appropriate PAIRALLOC, PAIRINIT).


Detailed Description

Header for pair abstract data type.

Definition in file pair.h.


Define Documentation

#define PAIRNEW pa   )     pa.i = 0; pa.ppan = (pairnode_t *) malloc(0);
 

Prepares a green pair for receiving realloc-ation.

Parameters:
pa green pair

Definition at line 9 of file pair.h.

Referenced by parsetag().


Function Documentation

pairnode_t* addpair char *  pckey,
char *  pcvalue,
pair_t ppa
 

Constructs pair, allocating adherent space (provided appropriate PAIRALLOC, PAIRINIT).

Parameters:
pckey constructand key
pcvalue constructand value
ppa constructate pair
Returns:
new node.

Definition at line 57 of file pair.c.

References pair_t::i, PAIRALLOC, PAIRSTRCPY, ppa, and pair_t::ppan.

Referenced by parsetag().

00058 {
00059   const char *pcerr = "pair.c addpair()";
00060   pairnode_t *ppan = ppa->ppan;
00061   PAIRALLOC(ppan, (ppa->i + 1))
00062   PAIRSTRCPY((ppan + ppa->i)->pckey, pckey)
00063   PAIRSTRCPY((ppan + ppa->i)->pcvalue, pcvalue)
00064   ++(ppa->i);
00065 
00066  cleanup:
00067   return ppan;
00068 }

void freepair pair_t ppa  ) 
 

Destroys pair.

Parameters:
ppa destructand

Definition at line 43 of file pair.c.

References freepairnode(), pair_t::i, ppa, and pair_t::ppan.

00044 {
00045   int i;
00046   for (i = 0; i < ppa->i; i++) {
00047     freepairnode(ppa->ppan);
00048   }
00049   ppa->i = 0;
00050 }

Here is the call graph for this function:

void freepairnode pairnode_t ppan  ) 
 

Destroys node.

Parameters:
ppan destructand

Definition at line 35 of file pair.c.

References pairnode_t::pckey, and pairnode_t::pcvalue.

Referenced by freepair().

00036 {
00037   free(ppan->pckey);
00038   free(ppan->pcvalue);
00039 }


Generated on Tue Dec 7 06:38:25 2004 for CSCI101:ProjectLatex by  doxygen 1.3.9.1