freebsd-nq/eBones/include/kparse.h
Mark Murray 02c78a9c21 After the Great eBones Repository Copy (tm), make ebones actually
compile
1) remove rubbish no longer needed
2) correct existing Makefiles
3) add new makefiles where needed
4) correct code, header files and man pages where necessary

PLEASE NOTE - after this you will need to make install in eBones/include,
and mamake obj depend all install in eBones/lib before doing a
make obj depend all install in eBones/. (I am going 6to fix src/Makefile
next)
PS - I hate slow international links - apologies for all the typos
1995-09-13 17:24:36 +00:00

92 lines
2.5 KiB
C

/*
* Copyright 1988 by the Massachusetts Institute of Technology.
* For copying and distribution information, please see the file
* <Copyright.MIT>.
*
* Include file for kparse routines.
*
* from: kparse.h,v 4.5 89/01/11 12:05:53 steiner Exp $
* $Id: kparse.h,v 1.4 1995/09/07 20:50:34 mark Exp $
*/
#ifndef KPARSE_DEFS
#define KPARSE_DEFS
/*
* values returned by fGetParameterSet()
*/
#define PS_BAD_KEYWORD -2 /* unknown or duplicate keyword */
#define PS_SYNTAX -1 /* syntax error */
#define PS_OKAY 0 /* got a complete parameter set */
#define PS_EOF 1 /* nothing more in the file */
/*
* values returned by fGetKeywordValue()
*/
#define KV_SYNTAX -2 /* syntax error */
#define KV_EOF -1 /* nothing more in the file */
#define KV_OKAY 0 /* got a keyword/value pair */
#define KV_EOL 1 /* nothing more on this line */
/*
* values returned by fGetToken()
*/
#define GTOK_BAD_QSTRING -1 /* newline found in quoted string */
#define GTOK_EOF 0 /* end of file encountered */
#define GTOK_QSTRING 1 /* quoted string */
#define GTOK_STRING 2 /* unquoted string */
#define GTOK_NUMBER 3 /* one or more digits */
#define GTOK_PUNK 4 /* punks are punctuation, newline,
* etc. */
#define GTOK_WHITE 5 /* one or more whitespace chars */
/*
* extended character classification macros
*/
#define ISOCTAL(CH) ( (CH>='0') && (CH<='7') )
#define ISQUOTE(CH) ( (CH=='\"') || (CH=='\'') || (CH=='`') )
#define ISWHITESPACE(C) ( (C==' ') || (C=='\t') )
#define ISLINEFEED(C) ( (C=='\n') || (C=='\r') || (C=='\f') )
/*
* tokens consist of any printable charcacter except comma, equal, or
* whitespace
*/
#define ISTOKENCHAR(C) ((C>040) && (C<0177) && (C != ',') && (C != '='))
/*
* the parameter table defines the keywords that will be recognized by
* fGetParameterSet, and their default values if not specified.
*/
typedef struct {
char *keyword;
char *defvalue;
char *value;
} parmtable;
#define PARMCOUNT(P) (sizeof(P)/sizeof(P[0]))
extern int LineNbr; /* current line # in parameter file */
extern char ErrorMsg[]; /*
* meaningful only when KV_SYNTAX,
* PS_SYNTAX, or PS_BAD_KEYWORD is
* returned by fGetKeywordValue or
* fGetParameterSet
*/
extern char *strsave(char *p); /* defined in this module */
extern char *strutol(char *p); /* defined in this module */
int fGetParameterSet(FILE *fp, parmtable parm[], int parmcount);
int fGetKeywordValue(FILE *fp, char *keyword, int klen, char *value, int vlen);
int fGetToken(FILE *fp, char *dest, int maxlen);
#endif /* KPARSE_DEFS */