Subversion Repositories tendra.SVN

Rev

Rev 5 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
6 7u83 2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions are met:
7
 *
8
 * 1. Redistributions of source code must retain the above copyright notice,
9
 *    this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
11
 *    this list of conditions and the following disclaimer in the documentation
12
 *    and/or other materials provided with the distribution.
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
14
 *    may be used to endorse or promote products derived from this software
15
 *    without specific, prior written permission.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
 *
29
 * $Id$
30
 */
31
/*
2 7u83 32
    		 Crown Copyright (c) 1997
6 7u83 33
 
2 7u83 34
    This TenDRA(r) Computer Program is subject to Copyright
35
    owned by the United Kingdom Secretary of State for Defence
36
    acting through the Defence Evaluation and Research Agency
37
    (DERA).  It is made available to Recipients with a
38
    royalty-free licence for its use, reproduction, transfer
39
    to other parties and amendment for any purpose not excluding
40
    product development provided that any such use et cetera
41
    shall be deemed to be acceptance of the following conditions:-
6 7u83 42
 
2 7u83 43
        (1) Its Recipients shall ensure that this Notice is
44
        reproduced upon any copies or amended versions of it;
6 7u83 45
 
2 7u83 46
        (2) Any amended version of it shall be clearly marked to
47
        show both the nature of and the organisation responsible
48
        for the relevant amendment or amendments;
6 7u83 49
 
2 7u83 50
        (3) Its onward transfer from a recipient to another
51
        party shall be deemed to be that party's acceptance of
52
        these conditions;
6 7u83 53
 
2 7u83 54
        (4) DERA gives no warranty or assurance as to its
55
        quality or suitability for any purpose and DERA accepts
56
        no liability whatsoever in relation to any use to which
57
        it may be put.
58
*/
59
 
60
 
61
/**** syntax.h --- Character classification.
62
 *
63
 ** Author: Steve Folkes <smf@hermes.mod.uk>
64
 *
65
 **** Commentary:
66
 *
67
 ***=== INTRODUCTION =========================================================
68
 *
69
 * This file specifies the interface to a number of syntax table manipulation
70
 * functions.  I ought to be able to use <ctype.h> for this, but I can't
71
 * because it doesn't have routines to get the numeric value for alphabetic
72
 * characters (amongst other omissions).  As I need to do this here, I might
73
 * as well put in support for everything.
74
 *
75
 * It is assumed elsewhere (in association with the input stream facility
76
 * specified in the file "istream.h") that the null and newline characters are
77
 * white space, and have no digit value.
78
 *
79
 ***=== CONSTANTS ============================================================
80
 *
81
 ** Constant:	SYNTAX_NO_VALUE
82
 *
83
 * This value is returned by the ``syntax_value'' function for characters that
84
 * do not have a digit value.
85
 *
86
 ***=== FUNCTIONS ============================================================
87
 *
88
 ** Function:	int			syntax_value
6 7u83 89
 *			(char c)
2 7u83 90
 ** Exceptions:
91
 *
92
 * This function returns the positive integer digit value that the specified
93
 * character should have, or ``SYNTAX_NO_VALUE'' if it has no value.
94
 *
95
 ** Function:	char			syntax_upcase
6 7u83 96
 *			(char c)
2 7u83 97
 ** Exceptions:
98
 *
99
 * This function returns the upper case version of the specified character if
100
 * it has one, otherwise it just returns the character.
101
 *
102
 ** Function:	char			syntax_downcase
6 7u83 103
 *			(char c)
2 7u83 104
 ** Exceptions:
105
 *
106
 * This function returns the lower case version of the specified character if
107
 * it has one, otherwise it just returns the character.
108
 *
109
 ** Function:	BoolT			syntax_is_white_space
6 7u83 110
 *			(char c)
2 7u83 111
 *
112
 * This function returns true if the specified character is a white space
113
 * character, and false otherwise.
114
 *
115
 ** Function:	BoolT			syntax_is_printable
6 7u83 116
 *			(char c)
2 7u83 117
 ** Exceptions:
118
 *
119
 * This function returns true if the specified character can be printed, and
120
 * false otherwise.
121
 *
122
 ** Function:	BoolT			syntax_is_letter
6 7u83 123
 *			(char c)
2 7u83 124
 ** Exceptions:
125
 *
126
 * This function returns true if the specified character is a letter, and
127
 * false otherwise.
128
 *
129
 ** Function:	BoolT			syntax_is_digit
6 7u83 130
 *			(char c)
2 7u83 131
 ** Exceptions:
132
 *
133
 * This function returns true if the specified character is a decimal digit,
134
 * and false otherwise.
135
 *
136
 **** Change Log:
137
 * $Log: syntax.h,v $
138
 * Revision 1.1.1.1  1998/01/17  15:57:46  release
139
 * First version to be checked into rolling release.
140
 *
141
 * Revision 1.2  1994/12/12  11:45:54  smf
142
 * Performing changes for 'CR94_178.sid+tld-update' - bringing in line with
143
 * OSSG C Coding Standards.
144
 *
145
 * Revision 1.1.1.1  1994/07/25  16:06:13  smf
146
 * Initial import of os-interface shared files.
147
 *
148
**/
149
 
150
/****************************************************************************/
151
 
152
#ifndef H_SYNTAX
153
#define H_SYNTAX
154
 
155
#include "os-interface.h"
156
 
157
/*--------------------------------------------------------------------------*/
158
 
6 7u83 159
#define SYNTAX_NO_VALUE	(-1)
2 7u83 160
 
161
/*--------------------------------------------------------------------------*/
162
 
6 7u83 163
extern int	syntax_value(char);
164
extern char	syntax_upcase(char);
165
extern char	syntax_downcase(char);
166
extern BoolT	syntax_is_white_space(char);
167
extern BoolT	syntax_is_printable(char);
168
extern BoolT	syntax_is_letter(char);
169
extern BoolT	syntax_is_digit(char);
2 7u83 170
 
171
#endif /* !defined (H_SYNTAX) */