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