1 /* $XConsortium: token.h,v 1.2 91/10/10 11:19:58 rws Exp $ */
2 /* Copyright International Business Machines,Corp. 1991
5 * License to use, copy, modify, and distribute this software
6 * and its documentation for any purpose and without fee is
7 * hereby granted, provided that the above copyright notice
8 * appear in all copies and that both that copyright notice and
9 * this permission notice appear in supporting documentation,
10 * and that the name of IBM not be used in advertising or
11 * publicity pertaining to distribution of the software without
12 * specific, written prior permission.
14 * IBM PROVIDES THIS SOFTWARE "AS IS", WITHOUT ANY WARRANTIES
15 * OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
16 * LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF
18 * THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND
19 * PERFORMANCE OF THE SOFTWARE, INCLUDING ANY DUTY TO SUPPORT
20 * OR MAINTAIN, BELONGS TO THE LICENSEE. SHOULD ANY PORTION OF
21 * THE SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM) ASSUMES
22 * THE ENTIRE COST OF ALL SERVICING, REPAIR AND CORRECTION. IN
23 * NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
24 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
25 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
26 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
27 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
33 /* Special characters */
36 /* Token type codes */
37 #define TOKEN_INVALID (-3)
38 #define TOKEN_BREAK (-2)
39 #define TOKEN_EOF (-1)
40 #define TOKEN_NONE (0)
41 #define TOKEN_LEFT_PAREN (1)
42 #define TOKEN_RIGHT_PAREN (2)
43 #define TOKEN_LEFT_ANGLE (3)
44 #define TOKEN_RIGHT_ANGLE (4)
45 #define TOKEN_LEFT_BRACE (5)
46 #define TOKEN_RIGHT_BRACE (6)
47 #define TOKEN_LEFT_BRACKET (7)
48 #define TOKEN_RIGHT_BRACKET (8)
49 #define TOKEN_NAME (9)
50 #define TOKEN_LITERAL_NAME (10)
51 #define TOKEN_INTEGER (11)
52 #define TOKEN_REAL (12)
53 #define TOKEN_RADIX_NUMBER (13)
54 #define TOKEN_HEX_STRING (14)
55 #define TOKEN_STRING (15)
56 #define TOKEN_IMMED_NAME (16)
59 extern void scan_token();
62 * -------------------------------------------------------------------------
63 * Globals shared -- (everyone else KEEP YOUR MITTS OFF THEM!)
64 * -------------------------------------------------------------------------
67 /* These variables are set by the caller */
68 extern char *tokenStartP; /* Pointer to token buffer in VM */
69 extern char *tokenMaxP; /* Pointer to end of VM we may use + 1 */
71 /* These variables are set by P_TOKEN */
72 extern int tokenLength; /* Characters in token */
73 extern boolean tokenTooLong; /* Token too long for space available */
74 extern int tokenType; /* Type of token identified */
75 extern psvalue tokenValue; /* Token value */