Annotation of embedaddon/php/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk, revision 1.1.1.1
1.1 misho 1: #!/usr/bin/awk -f
2: #
3: # $Id: mk_eaw_tbl.awk 180252 2005-02-20 22:18:09Z moriyoshi $
4: #
5: # Description: a script to generate east asian width table.
6: #
7:
8: BEGIN {
9: prev = -1
10: comma = 0
11: ORS = ""
12: FS = "[;.|# ]"
13: print "static const struct {\n\tint begin;\n\tint end;\n} " TABLE_NAME "[] = {\n\t"
14: }
15:
16: /^#/ {
17: }
18:
19: /^[0-9a-fA-F]+;/ {
20: if ($2 == "W" || $2 == "F") {
21: v = ( "0x" $1 ) + 0
22: if (prev < 0) {
23: first = v
24: } else if (v - prev > 1) {
25: if (comma) {
26: print ",\n\t"
27: }
28: printf("{ 0x%04x, 0x%04x }", first, prev)
29: first = v
30: comma = 1
31: }
32: prev = v
33: } else {
34: if (prev >= 0) {
35: if (comma) {
36: print ",\n\t"
37: }
38: printf("{ 0x%04x, 0x%04x }", first, prev)
39: prev = -1
40: comma = 1
41: }
42: }
43: }
44:
45: /^[0-9a-fA-F]+\.\./ {
46: if ($4 == "W" || $4 == "F") {
47: vs = ( "0x" $1 ) + 0
48: ve = ( "0x" $3 ) + 0
49: if (prev < 0) {
50: first = vs
51: } else if (vs - prev > 1) {
52: if (comma) {
53: print ",\n\t"
54: }
55: printf("{ 0x%04x, 0x%04x }", first, prev)
56: first = vs
57: comma = 1
58: }
59: prev = ve
60: } else {
61: if (prev >= 0) {
62: if (comma) {
63: print ",\n\t"
64: }
65: printf("{ 0x%04x, 0x%04x }", first, prev)
66: prev = -1
67: comma = 1
68: }
69: }
70: }
71:
72: END {
73: if (prev >= 0) {
74: if (comma) {
75: print ",\n\t"
76: }
77: printf("{ 0x%04x, 0x%04x }", first, prev)
78: }
79: print "\n};\n"
80: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>