mirror of
https://git.savannah.gnu.org/git/gperf.git
synced 2025-12-02 13:09:22 +00:00
Improve option --pic. New options --string-pool-name, --null-strings.
This commit is contained in:
147
tests/jstest4.gperf
Normal file
147
tests/jstest4.gperf
Normal file
@@ -0,0 +1,147 @@
|
||||
struct js_keyword {
|
||||
int name;
|
||||
int token;
|
||||
}
|
||||
%%
|
||||
abstract, 1
|
||||
boolean, 2
|
||||
break, 3
|
||||
byte, 4
|
||||
case, 5
|
||||
catch, 6
|
||||
char, 7
|
||||
class, 8
|
||||
const, 9
|
||||
continue, 10
|
||||
default, 11
|
||||
do, 12
|
||||
double, 13
|
||||
else, 14
|
||||
extends, 15
|
||||
false, 16
|
||||
final, 17
|
||||
finally, 18
|
||||
float, 19
|
||||
for, 20
|
||||
function, 21
|
||||
goto, 22
|
||||
if, 23
|
||||
implements, 24
|
||||
import, 25
|
||||
in, 26
|
||||
instanceof, 27
|
||||
int, 28
|
||||
interface, 29
|
||||
long, 30
|
||||
native, 31
|
||||
new, 32
|
||||
null, 33
|
||||
package, 34
|
||||
private, 35
|
||||
protected, 36
|
||||
public, 37
|
||||
return, 38
|
||||
short, 39
|
||||
static, 40
|
||||
super, 41
|
||||
switch, 42
|
||||
synchronized, 43
|
||||
this, 44
|
||||
throw, 45
|
||||
throws, 46
|
||||
transient, 47
|
||||
true, 48
|
||||
try, 49
|
||||
var, 50
|
||||
void, 51
|
||||
while, 52
|
||||
with, 53
|
||||
%%
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#if defined(__STDC__) || defined(__cplusplus)
|
||||
#define CONST const
|
||||
#else
|
||||
#define CONST
|
||||
#endif
|
||||
static CONST char* testdata[] = {
|
||||
"bogus",
|
||||
"abstract",
|
||||
"boolean",
|
||||
"break",
|
||||
"byte",
|
||||
"case",
|
||||
"catch",
|
||||
"char",
|
||||
"class",
|
||||
"const",
|
||||
"continue",
|
||||
"default",
|
||||
"do",
|
||||
"double",
|
||||
"else",
|
||||
"extends",
|
||||
"false",
|
||||
"final",
|
||||
"finally",
|
||||
"float",
|
||||
"for",
|
||||
"function",
|
||||
"goto",
|
||||
"if",
|
||||
"implements",
|
||||
"import",
|
||||
"in",
|
||||
"instanceof",
|
||||
"int",
|
||||
"interface",
|
||||
"long",
|
||||
"native",
|
||||
"new",
|
||||
"null",
|
||||
"package",
|
||||
"private",
|
||||
"protected",
|
||||
"public",
|
||||
"return",
|
||||
"short",
|
||||
"static",
|
||||
"super",
|
||||
"switch",
|
||||
"synchronized",
|
||||
"this",
|
||||
"throw",
|
||||
"throws",
|
||||
"transient",
|
||||
"true",
|
||||
"try",
|
||||
"var",
|
||||
"void",
|
||||
"while",
|
||||
"with"
|
||||
};
|
||||
int main ()
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < sizeof(testdata)/sizeof(testdata[0]); i++)
|
||||
{
|
||||
#ifdef CPLUSPLUS_TEST
|
||||
CONST struct js_keyword * resword = Perfect_Hash::in_word_set(testdata[i],strlen(testdata[i]));
|
||||
#else
|
||||
CONST struct js_keyword * resword = in_word_set(testdata[i],strlen(testdata[i]));
|
||||
#endif
|
||||
if (i > 0)
|
||||
{
|
||||
if (!resword)
|
||||
exit (1);
|
||||
if (strcmp(testdata[i],stringpool+resword->name))
|
||||
exit (1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (resword)
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user