summaryrefslogtreecommitdiffstats
path: root/contrib/gperf/tests/Makefile
blob: b7796d5e2f4b6d808885b4c32693f06908bc7b09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright (C) 1989 Free Software Foundation, Inc.
# written by Douglas C. Schmidt (schmidt@ics.uci.edu)
# 
# This file is part of GNU GPERF.
# 
# GNU GPERF is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 1, or (at your option)
# any later version.
# 
# GNU GPERF is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with GNU GPERF; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 

GPERF = gperf
CC = gcc

all: test

test:
	@echo "performing some tests of the perfect hash generator"   
	$(CC) -c -O test.c
	$(GPERF) -p -c -l -S1 -C -o c.gperf > cinset.c
	$(CC) -O -o cout cinset.c test.o
	@echo "testing ANSI C reserved words, all items should be found in the set"
	./cout -v < c.gperf 
	$(GPERF) -k1,4,'$$' ada.gperf > adainset.c
# double '$$' is only there since make gets confused; program wants only 1 '$'
	$(CC) -O -o aout adainset.c test.o
	@echo "testing Ada reserved words,all items should be found in the set"
	./aout -v < ada.gperf 
	$(GPERF) -p -D -S1 -k1,'$$' -s 2 -o adapredefined.gperf > preinset.c
	$(CC) -O -o preout preinset.c test.o
	@echo "testing Ada predefined words, all items should be found in the set"
	./preout -v < adapredefined.gperf 
	$(GPERF) -k1,2,'$$' -o modula3.gperf > m3inset.c
	$(CC) -O -o m3out m3inset.c test.o
	@echo "testing Modula3 reserved words, all items should be found in the set"
	./m3out -v < modula3.gperf 
	$(GPERF) -o -S1 -p < pascal.gperf > pinset.c
	$(CC) -O -o pout pinset.c test.o
	@echo "testing Pascal reserved words, all items should be found in the set"
	./pout -v < pascal.gperf 	
	$(GPERF) -o -S2 -j1 -D -p -t < c++.gperf > c++inset.c  
	$(CC) -O -o c++out c++inset.c test.o
	@echo "testing C++ reserved words, all items should be found in the set"
	tail -47 c++.gperf | ./c++out -v 	
# these next 5 are demos that show off the generated code
	$(GPERF) -p -j1 -g -o -t -N is_reserved_word -k1,3,'$$' c-parse.gperf
	$(GPERF) -n -k1-8 -l modula2.gperf 
	$(GPERF) -p -j 1 -o -a -g -t -k1,4,$$ gplus.gperf 
	$(GPERF) -D -p -t < c-parse.gperf 
	$(GPERF) -g -o -j1 -t -p -N is_reserved_word gpc.gperf
# prints out the help message
	-$(GPERF) -h 
	@echo "only if, do, for, case, goto, else, while, and return should be found "
	./aout -v < c.gperf 

clean: 
	-rm -f *.o core *~ *inset.c *out #*#
OpenPOWER on IntegriCloud