Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

md.h File Reference

#include <stdio.h>

Go to the source code of this file.

Compounds

struct  MD
struct  MD_Element
struct  MD_Element_Req
struct  MD_Entry
struct  MD_Field
struct  MD_Field_Decl
struct  MD_Section
struct  MD_Symbol
struct  MD_Symbol_Table

Defines

#define MD_INT   1
#define MD_DOUBLE   2
#define MD_STRING   3
#define MD_LINK   4
#define MD_OPTIONAL_ELEMENTS   -1
#define MD_num_sections(md)   ((md)->section_table->symbol_count)
#define MD_find_section(md, name)   ((MD_Section *)_MD_find_symbol_data((md)->section_table, name))
#define MD_delete_section(section)
#define MD_num_entries(section)   ((section)->entry_table->symbol_count)
#define MD_find_entry(section, name)   ((MD_Entry *)_MD_find_symbol_data((section)->entry_table, name))
#define MD_delete_entry(entry)
#define MD_num_field_decls(section)   ((section)->field_decl_table->symbol_count)
#define MD_max_field_index(section)   ((section)->max_field_index)
#define MD_find_field_decl(section, name)
#define MD_find_field(entry, field_decl)   ((entry)->field[(field_decl)->field_index])
#define MD_num_elements(field)   ((field)->max_element_index + 1)
#define MD_max_element_index(field)   ((field)->max_element_index)
#define MD_set_int(field, index, value)   _MD_set_int(field, index, value)
#define MD_get_int(field, index)   ((field)->element[index]->value.i)
#define MD_set_double(field, index, value)   _MD_set_double(field, index, value)
#define MD_get_double(field, index)   ((field)->element[index]->value.d)
#define MD_set_string(field, index, value)   _MD_set_string(field, index, value)
#define MD_get_string(field, index)   ((field)->element[index]->value.s)
#define MD_set_link(field, index, value)   _MD_set_link(field, index, value)
#define MD_get_link(field, index)   ((field)->element[index]->value.l)
#define MD_set_section_ext(section, ext)   ((section)->user_ext = (void *)(ext))
#define MD_get_section_ext(section)   ((section)->user_ext)
#define MD_set_entry_ext(entry, ext)   ((entry)->user_ext = (void *)(ext))
#define MD_get_entry_ext(entry)   ((entry)->user_ext)
#define MD_check_section(out, section)   _MD_check_section(out, section, "MD_check_section")
#define MD_check_entry(out, entry)   _MD_check_entry(out, entry, "MD_check_entry")
#define MD_check_field(out, field)   _MD_check_field(out, field, "MD_check_field")

Typedefs

typedef enum MD_FIELD_TYPE MD_FIELD_TYPE
typedef MD_Symbol MD_Symbol
typedef MD_Symbol_Table MD_Symbol_Table
typedef MD MD
typedef MD_Section MD_Section
typedef MD_Element_Req MD_Element_Req
typedef MD_Field_Decl MD_Field_Decl
typedef MD_Entry MD_Entry
typedef MD_Element MD_Element
typedef MD_Field MD_Field

Enumerations

enum  MD_FIELD_TYPE { MD_REQUIRED_FIELD = 1, MD_OPTIONAL_FIELD = 2 }

Functions

MDMD_new_md (char *name, int num_sections)
int MD_check_md (FILE *out, MD *md)
void MD_delete_md (MD *md)
MD_SectionMD_new_section (MD *md, char *name, int num_entries, int num_fields)
MD_SectionMD_first_section (MD *md)
MD_SectionMD_last_section (MD *md)
MD_SectionMD_next_section (MD_Section *section)
MD_SectionMD_prev_section (MD_Section *section)
MD_Field_DeclMD_new_field_decl (MD_Section *section, char *name, MD_FIELD_TYPE field_type)
MD_Field_DeclMD_first_field_decl (MD_Section *section)
MD_Field_DeclMD_last_field_decl (MD_Section *section)
MD_Field_DeclMD_next_field_decl (MD_Field_Decl *field_decl)
MD_Field_DeclMD_prev_field_decl (MD_Field_Decl *field_decl)
void MD_require_int (MD_Field_Decl *field_decl, int element_index)
void MD_require_double (MD_Field_Decl *field_decl, int element_index)
void MD_require_string (MD_Field_Decl *field_decl, int element_index)
void MD_require_link (MD_Field_Decl *field_decl, int element_index, MD_Section *section)
void MD_require_multi_target_link (MD_Field_Decl *field_decl, int element_index, int section_array_size, MD_Section **section_array)
void MD_kleene_star_requirement (MD_Field_Decl *field_decl, int element_index)
MD_EntryMD_new_entry (MD_Section *section, char *name)
void MD_rename_entry (MD_Entry *entry, char *new_name)
MD_EntryMD_first_entry (MD_Section *section)
MD_EntryMD_last_entry (MD_Section *section)
MD_EntryMD_next_entry (MD_Entry *entry)
MD_EntryMD_prev_entry (MD_Entry *entry)
MD_FieldMD_new_field (MD_Entry *entry, MD_Field_Decl *decl, int num_elements)
void MD_delete_field (MD_Field *field)
void MD_delete_field_decl (MD_Field_Decl *field_decl)
void MD_delete_element (MD_Field *field, int index)
MDMD_read_md (FILE *in, char *name)
void MD_write_md (FILE *out, MD *md)
void MD_print_md (FILE *out, MD *md, int page_width)
void MD_print_md_declarations (FILE *out, MD *md, int page_width)
void MD_print_md_template (FILE *out, MD *md)
void MD_print_section (FILE *out, MD_Section *section, int page_width)
void MD_print_section_template (FILE *out, MD_Section *section)
void MD_print_field_decl (FILE *out, MD_Field_Decl *field_decl, int page_width)
void MD_print_entry (FILE *out, MD_Entry *entry, int page_width)
void MD_print_entry_template (FILE *out, MD_Entry *entry)
void * _MD_find_symbol_data (MD_Symbol_Table *table, char *name)
int _MD_num_sections (MD *md)
MD_Section_MD_find_section (MD *md, char *name)
void * _MD_set_section_ext (MD_Section *section, void *ext)
void * _MD_get_section_ext (MD_Section *section)
void _MD_free_section (MD_Section *section)
void _MD_delete_section (MD_Section *section)
int _MD_check_section (FILE *out, MD_Section *section, char *caller_name)
int _MD_num_entries (MD_Section *section)
MD_Entry_MD_find_entry (MD_Section *section, char *name)
void * _MD_set_entry_ext (MD_Entry *entry, void *ext)
void * _MD_get_entry_ext (MD_Entry *entry)
void _MD_free_entry (MD_Entry *entry)
void _MD_delete_entry (MD_Entry *entry)
int _MD_check_entry (FILE *out, MD_Entry *entry, char *caller_name)
MD_Field_Decl_MD_find_field_decl (MD_Section *section, char *name)
void _MD_free_field_decl (MD_Field_Decl *field_decl)
int _MD_num_field_decls (MD_Section *section)
int _MD_max_field_index (MD_Section *section)
MD_Field_MD_find_field (MD_Entry *entry, MD_Field_Decl *field_decl)
int _MD_check_field (FILE *out, MD_Field *field, char *caller_name)
int _MD_num_elements (MD_Field *field)
int _MD_max_element_index (MD_Field *field)
void _MD_set_int (MD_Field *field, int index, int value)
void _MD_set_int_type_checking (MD_Field *field, int index, int value)
int _MD_get_int (MD_Field *field, int index)
void _MD_set_double (MD_Field *field, int index, double value)
void _MD_set_double_type_checking (MD_Field *field, int index, double value)
double _MD_get_double (MD_Field *field, int index)
void _MD_set_string (MD_Field *field, int index, char *value)
void _MD_set_string_type_checking (MD_Field *field, int index, char *value)
char * _MD_get_string (MD_Field *field, int index)
void _MD_set_link (MD_Field *field, int index, MD_Entry *value)
void _MD_set_link_type_checking (MD_Field *field, int index, MD_Entry *value)
MD_Entry_MD_get_link (MD_Field *field, int index)


Define Documentation

#define MD_check_entry out,
entry   )     _MD_check_entry(out, entry, "MD_check_entry")
 

Definition at line 418 of file include/md.h.

#define MD_check_field out,
field   )     _MD_check_field(out, field, "MD_check_field")
 

Definition at line 420 of file include/md.h.

#define MD_check_section out,
section   )     _MD_check_section(out, section, "MD_check_section")
 

Definition at line 416 of file include/md.h.

#define MD_delete_entry entry   ) 
 

Value:

(MD_delete_symbol(((MD_Entry *)(entry))->symbol, \
                              (void (*)(void *))_MD_free_entry))

Definition at line 332 of file include/md.h.

#define MD_delete_section section   ) 
 

Value:

(MD_delete_symbol(((MD_Section *)(section))->symbol, \
                              (void (*)(void *))_MD_free_section))

Definition at line 323 of file include/md.h.

#define MD_DOUBLE   2
 

Definition at line 95 of file include/md.h.

Referenced by _MD_get_double(), _MD_set_double(), build_element(), MD_print_entry(), MD_require_double(), and MD_write_md().

#define MD_find_entry section,
name   )     ((MD_Entry *)_MD_find_symbol_data((section)->entry_table, name))
 

Definition at line 329 of file include/md.h.

Referenced by build_element(), build_entry(), check_md_for_ambiguous_links(), find_parm_value(), and get_int_value().

#define MD_find_field entry,
field_decl   )     ((entry)->field[(field_decl)->field_index])
 

Definition at line 345 of file include/md.h.

Referenced by build_entry(), calc_num_alts(), calc_op_total_string_len(), find_field_by_name(), find_parm_value(), get_int_value(), SM_build_choices(), SM_build_resources(), SM_build_tables(), and SM_build_units().

#define MD_find_field_decl section,
name   ) 
 

Value:

((MD_Field_Decl *)_MD_find_symbol_data((section)->field_decl_table, \
                                                 name))

Definition at line 341 of file include/md.h.

Referenced by build_entry(), build_field_decl(), calc_num_alts(), calc_op_total_string_len(), find_field_by_name(), find_parm_value(), get_int_value(), SM_add_ids_to_entries(), SM_build_choices(), SM_build_resources(), SM_build_tables(), and SM_build_units().

#define MD_find_section md,
name   )     ((MD_Section *)_MD_find_symbol_data((md)->section_table, name))
 

Definition at line 319 of file include/md.h.

Referenced by build_field_decl(), build_md(), calc_num_alts(), calc_op_total_string_len(), calc_total_entry_name_len(), find_parm_value(), get_int_value(), get_num_entries(), load_lmdes_from_version2(), SM_build_choices(), SM_build_resources(), SM_build_tables(), and SM_build_units().

#define MD_get_double field,
index   )     ((field)->element[index]->value.d)
 

Definition at line 355 of file include/md.h.

#define MD_get_entry_ext entry   )     ((entry)->user_ext)
 

Definition at line 367 of file include/md.h.

#define MD_get_int field,
index   )     ((field)->element[index]->value.i)
 

Definition at line 352 of file include/md.h.

Referenced by get_int_value(), load_lmdes_from_version2(), set_latencies(), SM_build_choices(), SM_build_resources(), SM_build_tables(), and SM_build_units().

#define MD_get_link field,
index   )     ((field)->element[index]->value.l)
 

Definition at line 361 of file include/md.h.

Referenced by calc_num_alts(), calc_num_op_alts(), calc_op_total_string_len(), load_lmdes_from_version2(), set_latencies(), SM_build_choices(), SM_build_tables(), and SM_build_units().

#define MD_get_section_ext section   )     ((section)->user_ext)
 

Definition at line 364 of file include/md.h.

#define MD_get_string field,
index   )     ((field)->element[index]->value.s)
 

Definition at line 358 of file include/md.h.

Referenced by get_binary_parm(), get_int_parm(), and get_string_parm().

#define MD_INT   1
 

Definition at line 94 of file include/md.h.

Referenced by _MD_get_int(), _MD_set_int(), build_element(), MD_print_entry(), MD_require_int(), and MD_write_md().

#define MD_LINK   4
 

Definition at line 97 of file include/md.h.

Referenced by _MD_check_field(), _MD_free_field_decl(), _MD_get_link(), _MD_set_link(), build_element(), check_md_for_ambiguous_links(), MD_check_setting(), MD_print_entry(), MD_require_link(), MD_require_multi_target_link(), and MD_write_md().

#define MD_max_element_index field   )     ((field)->max_element_index)
 

Definition at line 349 of file include/md.h.

#define MD_max_field_index section   )     ((section)->max_field_index)
 

Definition at line 339 of file include/md.h.

#define MD_num_elements field   )     ((field)->max_element_index + 1)
 

Definition at line 348 of file include/md.h.

#define MD_num_entries section   )     ((section)->entry_table->symbol_count)
 

Definition at line 327 of file include/md.h.

#define MD_num_field_decls section   )     ((section)->field_decl_table->symbol_count)
 

Definition at line 336 of file include/md.h.

#define MD_num_sections md   )     ((md)->section_table->symbol_count)
 

Definition at line 318 of file include/md.h.

#define MD_OPTIONAL_ELEMENTS   -1
 

Definition at line 107 of file include/md.h.

#define MD_set_double field,
index,
value   )     _MD_set_double(field, index, value)
 

Definition at line 354 of file include/md.h.

Referenced by build_element(), and MD_read_md().

#define MD_set_entry_ext entry,
ext   )     ((entry)->user_ext = (void *)(ext))
 

Definition at line 366 of file include/md.h.

#define MD_set_int field,
index,
value   )     _MD_set_int(field, index, value)
 

Definition at line 351 of file include/md.h.

Referenced by build_element(), MD_read_md(), and SM_add_ids_to_entries().

#define MD_set_link field,
index,
value   )     _MD_set_link(field, index, value)
 

Definition at line 360 of file include/md.h.

Referenced by build_element(), and MD_read_md().

#define MD_set_section_ext section,
ext   )     ((section)->user_ext = (void *)(ext))
 

Definition at line 363 of file include/md.h.

#define MD_set_string field,
index,
value   )     _MD_set_string(field, index, value)
 

Definition at line 357 of file include/md.h.

Referenced by build_element(), and MD_read_md().

#define MD_STRING   3
 

Definition at line 96 of file include/md.h.

Referenced by _MD_get_string(), _MD_set_double(), _MD_set_int(), _MD_set_link(), _MD_set_string(), build_element(), MD_delete_element(), MD_delete_field(), MD_print_entry(), MD_require_string(), and MD_write_md().


Typedef Documentation

typedef struct MD MD
 

typedef struct MD_Element MD_Element
 

typedef struct MD_Element_Req MD_Element_Req
 

typedef struct MD_Entry MD_Entry
 

typedef struct MD_Field MD_Field
 

typedef struct MD_Field_Decl MD_Field_Decl
 

typedef enum MD_FIELD_TYPE MD_FIELD_TYPE
 

Referenced by build_field_decl(), MD_print_field_decl(), and MD_read_md().

typedef struct MD_Section MD_Section
 

typedef struct MD_Symbol MD_Symbol
 

typedef struct MD_Symbol_Table MD_Symbol_Table
 


Enumeration Type Documentation

enum MD_FIELD_TYPE
 

Enumeration values:
MD_REQUIRED_FIELD 
MD_OPTIONAL_FIELD 

Definition at line 100 of file include/md.h.


Function Documentation

int _MD_check_entry FILE *  out,
MD_Entry entry,
char *  caller_name
 

Definition at line 2577 of file md.c.

int _MD_check_field FILE *  out,
MD_Field field,
char *  caller_name
 

Definition at line 4109 of file md.c.

int _MD_check_section FILE *  out,
MD_Section section,
char *  caller_name
 

Definition at line 2237 of file md.c.

void _MD_delete_entry MD_Entry entry  ) 
 

Definition at line 2556 of file md.c.

void _MD_delete_section MD_Section section  ) 
 

Definition at line 2215 of file md.c.

MD_Entry* _MD_find_entry MD_Section section,
char *  name
 

Definition at line 2413 of file md.c.

MD_Field* _MD_find_field MD_Entry entry,
MD_Field_Decl field_decl
 

Definition at line 4036 of file md.c.

MD_Field_Decl* _MD_find_field_decl MD_Section section,
char *  name
 

Definition at line 3192 of file md.c.

MD_Section* _MD_find_section MD md,
char *  name
 

Definition at line 2079 of file md.c.

void* _MD_find_symbol_data MD_Symbol_Table table,
char *  name
 

Definition at line 604 of file md.c.

void _MD_free_entry MD_Entry entry  ) 
 

Definition at line 2516 of file md.c.

Referenced by _MD_delete_entry(), and _MD_free_section().

void _MD_free_field_decl MD_Field_Decl field_decl  ) 
 

Definition at line 3276 of file md.c.

Referenced by _MD_free_section(), and MD_delete_field_decl().

void _MD_free_section MD_Section section  ) 
 

Definition at line 2180 of file md.c.

Referenced by _MD_delete_section(), and MD_delete_md().

double _MD_get_double MD_Field field,
int  index
 

Definition at line 4573 of file md.c.

void* _MD_get_entry_ext MD_Entry entry  ) 
 

Definition at line 2503 of file md.c.

int _MD_get_int MD_Field field,
int  index
 

Definition at line 4470 of file md.c.

MD_Entry* _MD_get_link MD_Field field,
int  index
 

Definition at line 4788 of file md.c.

void* _MD_get_section_ext MD_Section section  ) 
 

Definition at line 2167 of file md.c.

char* _MD_get_string MD_Field field,
int  index
 

Definition at line 4676 of file md.c.

int _MD_max_element_index MD_Field field  ) 
 

Definition at line 4380 of file md.c.

int _MD_max_field_index MD_Section section  ) 
 

Definition at line 3180 of file md.c.

int _MD_num_elements MD_Field field  ) 
 

Definition at line 4366 of file md.c.

int _MD_num_entries MD_Section section  ) 
 

Definition at line 2401 of file md.c.

int _MD_num_field_decls MD_Section section  ) 
 

Definition at line 3168 of file md.c.

int _MD_num_sections MD md  ) 
 

Definition at line 2067 of file md.c.

void _MD_set_double MD_Field field,
int  index,
double  value
 

Definition at line 4498 of file md.c.

void _MD_set_double_type_checking MD_Field field,
int  index,
double  value
 

Definition at line 4554 of file md.c.

void* _MD_set_entry_ext MD_Entry entry,
void *  ext
 

Definition at line 2489 of file md.c.

void _MD_set_int MD_Field field,
int  index,
int  value
 

Definition at line 4394 of file md.c.

void _MD_set_int_type_checking MD_Field field,
int  index,
int  value
 

Definition at line 4451 of file md.c.

void _MD_set_link MD_Field field,
int  index,
MD_Entry value
 

Definition at line 4704 of file md.c.

void _MD_set_link_type_checking MD_Field field,
int  index,
MD_Entry value
 

Definition at line 4769 of file md.c.

void* _MD_set_section_ext MD_Section section,
void *  ext
 

Definition at line 2153 of file md.c.

void _MD_set_string MD_Field field,
int  index,
char *  value
 

Definition at line 4601 of file md.c.

void _MD_set_string_type_checking MD_Field field,
int  index,
char *  value
 

Definition at line 4657 of file md.c.

int MD_check_md FILE *  out,
MD md
 

Definition at line 837 of file md.c.

void MD_delete_element MD_Field field,
int  index
 

Definition at line 4812 of file md.c.

void MD_delete_field MD_Field field  ) 
 

Definition at line 4056 of file md.c.

void MD_delete_field_decl MD_Field_Decl field_decl  ) 
 

Definition at line 3324 of file md.c.

void MD_delete_md MD md  ) 
 

Definition at line 776 of file md.c.

MD_Entry* MD_first_entry MD_Section section  ) 
 

Definition at line 2423 of file md.c.

MD_Field_Decl* MD_first_field_decl MD_Section section  ) 
 

Definition at line 3203 of file md.c.

MD_Section* MD_first_section MD md  ) 
 

Definition at line 2088 of file md.c.

void MD_kleene_star_requirement MD_Field_Decl field_decl,
int  element_index
 

Definition at line 3860 of file md.c.

MD_Entry* MD_last_entry MD_Section section  ) 
 

Definition at line 2439 of file md.c.

MD_Field_Decl* MD_last_field_decl MD_Section section  ) 
 

Definition at line 3219 of file md.c.

MD_Section* MD_last_section MD md  ) 
 

Definition at line 2103 of file md.c.

MD_Entry* MD_new_entry MD_Section section,
char *  name
 

Definition at line 2321 of file md.c.

MD_Field* MD_new_field MD_Entry entry,
MD_Field_Decl decl,
int  num_elements
 

Definition at line 3927 of file md.c.

MD_Field_Decl* MD_new_field_decl MD_Section section,
char *  name,
MD_FIELD_TYPE  field_type
 

Definition at line 2997 of file md.c.

MD* MD_new_md char *  name,
int  num_sections
 

Definition at line 721 of file md.c.

MD_Section* MD_new_section MD md,
char *  name,
int  num_entries,
int  num_fields
 

Definition at line 2001 of file md.c.

MD_Entry* MD_next_entry MD_Entry entry  ) 
 

Definition at line 2455 of file md.c.

MD_Field_Decl* MD_next_field_decl MD_Field_Decl field_decl  ) 
 

Definition at line 3235 of file md.c.

MD_Section* MD_next_section MD_Section section  ) 
 

Definition at line 2119 of file md.c.

MD_Entry* MD_prev_entry MD_Entry entry  ) 
 

Definition at line 2471 of file md.c.

MD_Field_Decl* MD_prev_field_decl MD_Field_Decl field_decl  ) 
 

Definition at line 3251 of file md.c.

MD_Section* MD_prev_section MD_Section section  ) 
 

Definition at line 2135 of file md.c.

void MD_print_entry FILE *  out,
MD_Entry entry,
int  page_width
 

Definition at line 2655 of file md.c.

void MD_print_entry_template FILE *  out,
MD_Entry entry
 

Definition at line 2948 of file md.c.

void MD_print_field_decl FILE *  out,
MD_Field_Decl field_decl,
int  page_width
 

Definition at line 3365 of file md.c.

void MD_print_md FILE *  out,
MD md,
int  page_width
 

Definition at line 1822 of file md.c.

void MD_print_md_declarations FILE *  out,
MD md,
int  page_width
 

Definition at line 1857 of file md.c.

void MD_print_md_template FILE *  out,
MD md
 

Definition at line 1963 of file md.c.

void MD_print_section FILE *  out,
MD_Section section,
int  page_width
 

Definition at line 2263 of file md.c.

void MD_print_section_template FILE *  out,
MD_Section section
 

Definition at line 2297 of file md.c.

MD* MD_read_md FILE *  in,
char *  name
 

Definition at line 1135 of file md.c.

void MD_rename_entry MD_Entry entry,
char *  new_name
 

Definition at line 2377 of file md.c.

void MD_require_double MD_Field_Decl field_decl,
int  element_index
 

Definition at line 3623 of file md.c.

void MD_require_int MD_Field_Decl field_decl,
int  element_index
 

Definition at line 3597 of file md.c.

void MD_require_link MD_Field_Decl field_decl,
int  element_index,
MD_Section section
 

Definition at line 3677 of file md.c.

void MD_require_multi_target_link MD_Field_Decl field_decl,
int  element_index,
int  section_array_size,
MD_Section **  section_array
 

Definition at line 3748 of file md.c.

void MD_require_string MD_Field_Decl field_decl,
int  element_index
 

Definition at line 3649 of file md.c.

void MD_write_md FILE *  out,
MD md
 

Definition at line 1493 of file md.c.


Generated on Mon Jul 21 20:30:12 2003 for TINKER LEGO DOC by doxygen 1.3.2