Annotation of embedaddon/php/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk, revision 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>