Commit | Line | Data |
---|---|---|
34cbb053 AW |
1 | #!/usr/bin/awk -f |
2 | # | |
3 | # Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc. | |
4 | # | |
5 | # This program is free software; you can redistribute it and/or modify | |
6 | # it under the terms of the GNU Lesser General Public License as | |
7 | # published by the Free Software Foundation; either version 3, or (at | |
8 | # your option) any later version. | |
9 | # | |
10 | # This program is distributed in the hope that it will be useful, but | |
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | # Lesser General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU Lesser General Public | |
16 | # License along with this software; see the file COPYING.LESSER. If | |
17 | # not, write to the Free Software Foundation, Inc., 51 Franklin | |
18 | # Street, Fifth Floor, Boston, MA 02110-1301 USA | |
19 | # | |
20 | # Written by Greg J. Badros, <gjb@cs.washington.edu> | |
21 | # 11-Jan-2000 | |
22 | ||
23 | BEGIN { | |
24 | filename = ARGV[1]; | |
25 | in_a_func = 0; | |
26 | } | |
27 | ||
28 | /^SCM_DEFINE/ { | |
29 | func_name = $0; | |
30 | sub(/^[^\(\n]*\([ \t]*/,"", func_name); | |
31 | sub(/[ \t]*,.*/,"", func_name); | |
32 | # print func_name; # GJB:FIXME:: flag to do this to list primitives? | |
33 | in_a_func = 1; | |
34 | } | |
35 | ||
36 | /^\{/ && in_a_func { | |
37 | if (!match(last_line,/^#define[ \t]+FUNC_NAME[ \t]+/)) { | |
38 | printf filename ":" NR ":***" > "/dev/stderr"; | |
39 | print "Missing or erroneous `#define FUNC_NAME s_" func_name "'" > "/dev/stderr"; | |
40 | } else { | |
41 | sub(/^#define[ \t]+FUNC_NAME[ \t]+s_/, "", last_line); | |
42 | sub(/[ \t]*$/,"",last_line); | |
43 | if (last_line != func_name) { | |
44 | printf filename ":" NR ":***" > "/dev/stderr"; | |
45 | print "Mismatching FUNC_NAME. Should be: `#define FUNC_NAME s_" func_name "'" > "/dev/stderr"; | |
46 | } | |
47 | } | |
48 | } | |
49 | ||
50 | 1 == next_line_better_be_undef { | |
51 | if (!match($0,/^#undef FUNC_NAME[ \t]*$/)) { | |
52 | printf filename ":" NR ":***" > "/dev/stderr"; | |
53 | print "Missing or erroneous #undef for " func_name ": " | |
54 | "Got `" $0 "' instead." > "/dev/stderr"; | |
55 | } | |
56 | in_a_func = ""; | |
57 | func_name = ""; | |
58 | next_line_better_be_undef = 0; | |
59 | } | |
60 | ||
61 | /^\}/ && in_a_func { | |
62 | next_line_better_be_undef = 1; | |
63 | } | |
64 | ||
65 | { last_line = $0; } |