| Index: gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/gpc.exp
|
| ===================================================================
|
| --- gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/gpc.exp (revision 0)
|
| +++ gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/gpc.exp (revision 0)
|
| @@ -0,0 +1,157 @@
|
| +/* C code produced by gperf version 3.0.1 */
|
| +/* Command-line: ../src/gperf -g -o -j1 -t -N is_reserved_word */
|
| +/* Computed positions: -k'1,$' */
|
| +
|
| +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
| + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
| + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
|
| + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
|
| + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
|
| + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
|
| + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
|
| + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
|
| + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
|
| + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
|
| + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
|
| + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
|
| + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
|
| + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
|
| + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
|
| + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
|
| + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
|
| + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
|
| + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
|
| + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
|
| + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
|
| + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
|
| + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
|
| +/* The character set is not based on ISO-646. */
|
| +error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
| +#endif
|
| +
|
| +
|
| +/* ISO Pascal 7185 reserved words.
|
| + *
|
| + * For GNU Pascal compiler (GPC) by jtv@hut.fi
|
| + *
|
| + * run this through the Doug Schmidt's gperf program
|
| + * with command
|
| + * gperf -g -o -j1 -t -p -N is_reserved_word
|
| + *
|
| + */
|
| +struct resword { char *name; short token; short iclass;};
|
| +
|
| +#define TOTAL_KEYWORDS 35
|
| +#define MIN_WORD_LENGTH 2
|
| +#define MAX_WORD_LENGTH 9
|
| +#define MIN_HASH_VALUE 2
|
| +#define MAX_HASH_VALUE 37
|
| +/* maximum key range = 36, duplicates = 0 */
|
| +
|
| +#ifdef __GNUC__
|
| +__inline
|
| +#else
|
| +#ifdef __cplusplus
|
| +inline
|
| +#endif
|
| +#endif
|
| +static unsigned int
|
| +hash (str, len)
|
| + register const char *str;
|
| + register unsigned int len;
|
| +{
|
| + static unsigned char asso_values[] =
|
| + {
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 14, 32, 16, 13, 9,
|
| + 1, 32, 38, 9, 38, 38, 22, 26, 16, 3,
|
| + 2, 38, 7, 23, 0, 19, 25, 23, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 5, 1, 5, 38, 3, 38, 38, 38, 8, 16,
|
| + 0, 0, 38, 38, 3, 38, 7, 38, 8, 38,
|
| + 38, 4, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
|
| + 38, 38, 38, 38, 38, 38
|
| + };
|
| + return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
|
| +}
|
| +
|
| +#ifdef __GNUC__
|
| +__inline
|
| +#endif
|
| +struct resword *
|
| +is_reserved_word (str, len)
|
| + register const char *str;
|
| + register unsigned int len;
|
| +{
|
| + static struct resword wordlist[] =
|
| + {
|
| + {""}, {""},
|
| + {"To", TO, PASCAL_ISO},
|
| + {""},
|
| + {"Then", THEN, PASCAL_ISO},
|
| + {"Type", TYPE, PASCAL_ISO},
|
| + {"File", FILE_, PASCAL_ISO},
|
| + {"For", FOR, PASCAL_ISO},
|
| + {"Or", OR, PASCAL_ISO},
|
| + {"Function", FUNCTION, PASCAL_ISO},
|
| + {"Of", OF, PASCAL_ISO},
|
| + {"In", IN, PASCAL_ISO},
|
| + {"Procedure", PROCEDURE, PASCAL_ISO},
|
| + {"Packed", PACKED, PASCAL_ISO},
|
| + {"Else", ELSE, PASCAL_ISO},
|
| + {"Do", DO, PASCAL_ISO},
|
| + {"If", IF, PASCAL_ISO},
|
| + {"End", END, PASCAL_ISO},
|
| + {"Record", RECORD, PASCAL_ISO},
|
| + {"Downto", DOWNTO, PASCAL_ISO},
|
| + {"Repeat", REPEAT, PASCAL_ISO},
|
| + {"Case", CASE, PASCAL_ISO},
|
| + {"And", AND, PASCAL_ISO},
|
| + {"Array", ARRAY, PASCAL_ISO},
|
| + {"Div", DIV, PASCAL_ISO},
|
| + {"Program",PROGRAM,PASCAL_ISO},
|
| + {"Not", NOT, PASCAL_ISO},
|
| + {"Nil", NIL, PASCAL_ISO},
|
| + {"Const", CONST, PASCAL_ISO},
|
| + {"While", WHILE, PASCAL_ISO},
|
| + {"With", WITH, PASCAL_ISO},
|
| + {"Var", VAR, PASCAL_ISO},
|
| + {"Until", UNTIL, PASCAL_ISO},
|
| + {"Set", SET, PASCAL_ISO},
|
| + {"Mod", MOD, PASCAL_ISO},
|
| + {"Label", LABEL, PASCAL_ISO},
|
| + {"Goto", GOTO, PASCAL_ISO},
|
| + {"Begin", BEGIN_, PASCAL_ISO}
|
| + };
|
| +
|
| + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
| + {
|
| + register int key = hash (str, len);
|
| +
|
| + if (key <= MAX_HASH_VALUE && key >= 0)
|
| + {
|
| + register const char *s = wordlist[key].name;
|
| +
|
| + if (*str == *s && !strcmp (str + 1, s + 1))
|
| + return &wordlist[key];
|
| + }
|
| + }
|
| + return 0;
|
| +}
|
|
|