Annotation of sys/arch/hppa/dev/devlist2h.awk, Revision 1.1.1.1
1.1 nbrk 1: # $OpenBSD: devlist2h.awk,v 1.6 2004/04/07 18:24:19 mickey Exp $
2:
3: #
4: # Copyright (c) 1998-2003 Michael Shalayeff
5: # All rights reserved.
6: #
7: # Redistribution and use in source and binary forms, with or without
8: # modification, are permitted provided that the following conditions
9: # are met:
10: # 1. Redistributions of source code must retain the above copyright
11: # notice, this list of conditions and the following disclaimer.
12: # 2. Redistributions in binary form must reproduce the above copyright
13: # notice, this list of conditions and the following disclaimer in the
14: # documentation and/or other materials provided with the distribution.
15: #
16: # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17: # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18: # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19: # IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
20: # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21: # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22: # SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
24: # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
25: # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26: # THE POSSIBILITY OF SUCH DAMAGE.
27: #
28:
29: BEGIN {
30: ncpu = 0;
31: cpuh="cpudevs.h";
32: cpud="cpudevs_data.h";
33: SUBSEP = "_";
34: }
35:
36: /^[ \t]*$/ {next}
37:
38: /^[ \t]*\/\*/ {busted++}
39:
40: /^[ \t]*#/ {next}
41:
42: busted {
43: cp = match($0, /\*\//);
44: if(!cp) {
45: next;
46: } else if (cp + 1 == length($0)) {
47: busted = 0;
48: next;
49: } else {
50: sub(/.*\*\//, "");
51: busted = 0;
52: }
53: }
54:
55: # first line is rcsid, beware
56: NR == 1 {
57: VERSION = $0;
58: gsub("\\$", "", VERSION);
59:
60: printf("/*\n * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n" \
61: " * generated from:\n *\t%s\n */\n\n", VERSION) > cpud;
62: printf("/*\n * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n" \
63: " * generated from:\n *\t%s\n */\n\n", VERSION) > cpuh;
64: }
65:
66: $1 == "type" {
67: printf("#define\tHPPA_TYPE_%s\t%s\n", toupper($2), $3) > cpuh;
68: types[tolower($2)] = toupper($2);
69: next;
70: }
71:
72: NR > 1 {
73: if (tolower($1) in types) {
74: printf("#define\tHPPA_%s_%s\t%s\n", toupper($1),
75: toupper($2), $3) > cpuh;
76: printf("{HPPA_TYPE_%s,\tHPPA_%s_%s,\t\"", toupper($1),
77: toupper($1), toupper($2), $3) > cpud;
78: f = 4;
79: while (f <= NF) {
80: sub(/[ \t]*/, "", $f);
81: ep = match($f, /\*\//);
82: if (busted && !ep) {
83: f++;
84: continue;
85: }
86: if (match($f, /\/\*/)) {
87: if (ep) {
88: sub(/\/\*/, "", $f);
89: } else {
90: sub(/\/\*.*$/, "", $f);
91: busted++;
92: }
93: }
94: if (ep) {
95: gsub(/^.*\*\//, "", $f);
96: busted = 0;
97: }
98: if (length($f)) {
99: if (f > 4)
100: printf (" ") > cpud;
101: printf ("%s", $f) > cpud;
102: }
103: f++;
104: }
105: printf("\" },\n") > cpud;
106: } else {
107: printf("WHA at line %d\n", NR);
108: exit(1);
109: }
110: }
111:
112: END {
113: if (busted) {
114: print("unterminated comment at the EOF\n");
115: exit(1);
116: }
117: printf("{ -1 }\n") > cpud;
118: }
119:
CVSweb