diff options
author | Bruno Haible <bruno@clisp.org> | 2003-03-18 10:22:37 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2003-03-18 10:22:37 +0000 |
commit | 6d268d095b4cb2bab821e82b785a4b74810b01a6 (patch) | |
tree | 5b3f7f60909fc6a7d5f4697c9d4ae58f947f0a7a /tests/gpc.exp | |
parent | 40f37680ac107a61bbe14efe6213f70c91c6b461 (diff) | |
download | gperf-6d268d095b4cb2bab821e82b785a4b74810b01a6.tar.gz |
Completely new asso_values search algorithm.
Diffstat (limited to 'tests/gpc.exp')
-rw-r--r-- | tests/gpc.exp | 101 |
1 files changed, 50 insertions, 51 deletions
diff --git a/tests/gpc.exp b/tests/gpc.exp index 4f9723d..62ec8fd 100644 --- a/tests/gpc.exp +++ b/tests/gpc.exp @@ -17,8 +17,8 @@ struct resword { char *name; short token; short iclass;}; #define MIN_WORD_LENGTH 2 #define MAX_WORD_LENGTH 9 #define MIN_HASH_VALUE 2 -#define MAX_HASH_VALUE 43 -/* maximum key range = 42, duplicates = 0 */ +#define MAX_HASH_VALUE 37 +/* maximum key range = 36, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -34,32 +34,32 @@ hash (str, len) { static unsigned char asso_values[] = { - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 18, 29, 14, 6, 7, - 10, 20, 44, 28, 44, 44, 28, 19, 22, 15, - 0, 44, 9, 23, 0, 23, 26, 2, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 0, 0, 13, 44, 30, 44, 44, 44, 0, 25, - 1, 0, 44, 44, 0, 44, 1, 44, 25, 44, - 44, 0, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44 + 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]]; } @@ -77,41 +77,40 @@ is_reserved_word (str, len) {""}, {""}, {"To", TO, PASCAL_ISO}, {""}, - {"Type", TYPE, 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}, - {"While", WHILE, PASCAL_ISO}, + {"Else", ELSE, PASCAL_ISO}, {"Do", DO, PASCAL_ISO}, - {"Procedure", PROCEDURE, PASCAL_ISO}, + {"If", IF, PASCAL_ISO}, {"End", END, PASCAL_ISO}, - {"Else", ELSE, PASCAL_ISO}, - {"Downto", DOWNTO, PASCAL_ISO}, - {"For", FOR, PASCAL_ISO}, - {"File", FILE_, PASCAL_ISO}, {"Record", RECORD, PASCAL_ISO}, + {"Downto", DOWNTO, PASCAL_ISO}, {"Repeat", REPEAT, PASCAL_ISO}, - {"Or", OR, PASCAL_ISO}, {"Case", CASE, PASCAL_ISO}, - {"Function", FUNCTION, PASCAL_ISO}, - {"Const", CONST, PASCAL_ISO}, {"And", AND, PASCAL_ISO}, - {"Mod", MOD, PASCAL_ISO}, {"Array", ARRAY, PASCAL_ISO}, - {"Goto", GOTO, PASCAL_ISO}, - {"Nil", NIL, PASCAL_ISO}, + {"Div", DIV, PASCAL_ISO}, + {"Program",PROGRAM,PASCAL_ISO}, {"Not", NOT, PASCAL_ISO}, - {"Set", SET, PASCAL_ISO}, - {"Until", UNTIL, PASCAL_ISO}, + {"Nil", NIL, PASCAL_ISO}, + {"Const", CONST, PASCAL_ISO}, + {"While", WHILE, PASCAL_ISO}, + {"With", WITH, PASCAL_ISO}, {"Var", VAR, PASCAL_ISO}, - {"Of", OF, PASCAL_ISO}, - {"In", IN, PASCAL_ISO}, - {"Program",PROGRAM,PASCAL_ISO}, + {"Until", UNTIL, PASCAL_ISO}, + {"Set", SET, PASCAL_ISO}, + {"Mod", MOD, PASCAL_ISO}, {"Label", LABEL, PASCAL_ISO}, - {"Div", DIV, PASCAL_ISO}, - {"Begin", BEGIN_, PASCAL_ISO}, - {"With", WITH, PASCAL_ISO}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"If", IF, PASCAL_ISO} + {"Goto", GOTO, PASCAL_ISO}, + {"Begin", BEGIN_, PASCAL_ISO} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) |