1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
/*
* include/kerberosIV/kparse.h
*
* Copyright 1988, 1994 by the Massachusetts Institute of Technology.
* All Rights Reserved.
*
* Export of this software from the United States of America may
* require a specific license from the United States Government.
* It is the responsibility of any person or organization contemplating
* export to obtain such a license before exporting.
*
* WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
* distribute this software and its documentation for any purpose and
* without fee is hereby granted, provided that the above copyright
* notice appear in all copies and that both that copyright notice and
* this permission notice appear in supporting documentation, and that
* the name of M.I.T. not be used in advertising or publicity pertaining
* to distribution of the software without specific, written prior
* permission. M.I.T. makes no representations about the suitability of
* this software for any purpose. It is provided "as is" without express
* or implied warranty.
*
* Include file for kparse routines.
*/
#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 */
#endif /* KPARSE_DEFS */
|