parse.c File Reference

routines for parsing arbitrary structures More...

#include "common.h"
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <strings.h>
#include "machine.h"
#include "bu.h"

Include dependency graph for parse.c:

Go to the source code of this file.

Defines

#define CKMEM(_len)
#define BU_GETPUT_MAGIC_1   0x15cb
#define BU_GETPUT_MAGIC_2   0xbc51
#define BU_INIT_GETPUT_1(_p)
#define BU_INIT_GETPUT_2(_p, _l)
#define BU_CK_GETPUT(_p)
#define STATE_UNKNOWN   0
#define STATE_IN_KEYWORD   1
#define STATE_IN_VALUE   2
#define STATE_IN_QUOTED_VALUE   3

Functions

int bu_struct_export (struct bu_external *ext, const genptr_t base, const struct bu_structparse *imp)
int bu_struct_import (genptr_t base, const struct bu_structparse *imp, const struct bu_external *ext)
int bu_struct_put (FILE *fp, const struct bu_external *ext)
int bu_struct_get (struct bu_external *ext, FILE *fp)
void bu_struct_wrap_buf (struct bu_external *ext, genptr_t buf)
HIDDEN int bu_parse_double (const char *str, long int count, double *loc)
HIDDEN int bu_struct_lookup (register const struct bu_structparse *sdp, register const char *name, const char *base, const char *const value)
int bu_struct_parse (const struct bu_vls *in_vls, const struct bu_structparse *desc, const char *base)
HIDDEN void bu_matprint (const char *name, register const double *mat)
HIDDEN void bu_vls_matprint (struct bu_vls *vls, const char *name, register const double *mat)
void bu_vls_struct_item (struct bu_vls *vp, const struct bu_structparse *sdp, const char *base, int sep_char)
int bu_vls_struct_item_named (struct bu_vls *vp, const struct bu_structparse *sdp, const char *name, const char *base, int sep_char)
void bu_struct_print (const char *title, const struct bu_structparse *parsetab, const char *base)
HIDDEN void bu_vls_print_double (struct bu_vls *vls, const char *name, register long int count, register const double *dp)
void bu_vls_struct_print (struct bu_vls *vls, register const struct bu_structparse *sdp, const char *base)
void bu_vls_struct_print2 (struct bu_vls *vls, const char *title, const struct bu_structparse *sdp, const char *base)
void bu_parse_mm (register const struct bu_structparse *sdp, register const char *name, char *base, const char *value)
int bu_key_eq_to_key_val (char *in, char **next, struct bu_vls *vls)
int bu_shader_to_tcl_list (char *in, struct bu_vls *vls)
char * bu_list_elem (const char *in, int index)
int bu_tcl_list_length (const char *in)
int bu_key_val_to_vls (struct bu_vls *vls, char *params)
int bu_shader_to_key_eq (char *in, struct bu_vls *vls)
int bu_fwrite_external (FILE *fp, const struct bu_external *ep)
void bu_hexdump_external (FILE *fp, const struct bu_external *ep, const char *str)
void bu_free_external (register struct bu_external *ep)
void bu_copy_external (struct bu_external *op, const struct bu_external *ip)
char * bu_next_token (char *str)


Detailed Description

routines for parsing arbitrary structures

Routines to assign values to elements of arbitrary structures. The layout of a structure to be processed is described by a structure of type "bu_structparse", giving element names, element formats, an offset from the beginning of the structure, and a pointer to an optional "hooked" function that is called whenever that structure element is changed.

There are four basic operations supported:
Authors:
Michael John Muuss

Lee A. Butler

Source -
SECAD/VLD Computing Consortium, Bldg 394
The U. S. Army Ballistic Research Laboratory
Aberdeen Proving Ground, Maryland 21005

Definition in file parse.c.


Generated on Mon Sep 18 01:25:04 2006 for BRL-CAD by  doxygen 1.4.6