1/*
2 * This file was generated by the mksyntax program.
3 */
4
5#include <ctype.h>
6
7#ifdef CEOF
8#undef CEOF
9#endif
10
11/* Syntax classes */
12#define CWORD 0			/* character is nothing special */
13#define CNL 1			/* newline character */
14#define CBACK 2			/* a backslash character */
15#define CSQUOTE 3		/* single quote */
16#define CDQUOTE 4		/* double quote */
17#define CENDQUOTE 5		/* a terminating quote */
18#define CBQUOTE 6		/* backwards single quote */
19#define CVAR 7			/* a dollar sign */
20#define CENDVAR 8		/* a '}' character */
21#define CLP 9			/* a left paren in arithmetic */
22#define CRP 10			/* a right paren in arithmetic */
23#define CEOF 11			/* end of file */
24#define CCTL 12			/* like CWORD, except it must be escaped */
25#define CSPCL 13		/* these terminate a word */
26#define CIGN 14			/* character should be ignored */
27
28/* Syntax classes for is_ functions */
29#define ISDIGIT 01		/* a digit */
30#define ISUPPER 02		/* an upper case letter */
31#define ISLOWER 04		/* a lower case letter */
32#define ISUNDER 010		/* an underscore */
33#define ISSPECL 020		/* the name of a special parameter */
34
35#define SYNBASE 130
36#define PEOF -130
37
38#define PEOA -129
39
40
41#define BASESYNTAX (basesyntax + SYNBASE)
42#define DQSYNTAX (dqsyntax + SYNBASE)
43#define SQSYNTAX (sqsyntax + SYNBASE)
44#define ARISYNTAX (arisyntax + SYNBASE)
45
46#define is_digit(c)	((unsigned)((c) - '0') <= 9)
47#define is_alpha(c)	isalpha((unsigned char)(c))
48#define is_name(c)	((c) == '_' || isalpha((unsigned char)(c)))
49#define is_in_name(c)	((c) == '_' || isalnum((unsigned char)(c)))
50#define is_special(c)	((is_type+SYNBASE)[(signed char)(c)] & (ISSPECL|ISDIGIT))
51#define digit_val(c)	((c) - '0')
52
53extern const char basesyntax[];
54extern const char dqsyntax[];
55extern const char sqsyntax[];
56extern const char arisyntax[];
57extern const char is_type[];
58