1function reset_vals() { 2 upperstr = ""; 3 lowerstr = ""; 4 flagstr = "0"; 5} 6 7function print_val() { 8 upperstr = $13; 9 lowerstr = $14; 10 if ( upperstr == "" ) 11 upperstr = strval; 12 if ( lowerstr == "" ) 13 lowerstr = strval; 14 15 if ( $3 == "Lu" ) 16 flagstr = sprintf("%s|%s", flagstr, "UNI_UPPER"); 17 if ( $3 == "Ll" ) 18 flagstr = sprintf("%s|%s", flagstr, "UNI_LOWER"); 19 if ( val >= 48 && val <= 57) 20 flagstr = sprintf("%s|%s", flagstr, "UNI_DIGIT"); 21 if ((val >= 48 && val <= 57) || (val >= 65 && val <= 70) || (val >=97 && val <= 102)) 22 flagstr = sprintf("%s|%s", flagstr, "UNI_XDIGIT"); 23 if ( val == 32 || (val >=9 && val <= 13)) 24 flagstr = sprintf("%s|%s", flagstr, "UNI_SPACE"); 25 if( index(flagstr, "0|") == 1) 26 flagstr = substr(flagstr, 3, length(flagstr) - 2); 27 printf("{ 0x%s, 0x%s, %s }, \t\t\t/* %s %s */\n", lowerstr, upperstr, flagstr, strval, $2); 28 val++; 29 strval=sprintf("%04X", val); 30 reset_vals(); 31} 32 33BEGIN { 34 val=0 35 FS=";" 36 strval=sprintf("%04X", val); 37 reset_vals(); 38} 39 40{ 41 if ( $1 == strval ) { 42 print_val(); 43 } else { 44 while ( $1 != strval) { 45 printf("{ 0x%04X, 0x%04X, 0 }, \t\t\t/* %s NOMAP */\n", val, val, strval); 46 val++; 47 strval=sprintf("%04X", val); 48 } 49 print_val(); 50 } 51} 52 53END { 54 while ( val < 65536 ) { 55 printf("{ 0x%04X, 0x%04X, 0 }, \t\t\t/* %s NOMAP */\n", val, val, strval); 56 val++; 57 strval=sprintf("%04X", val); 58 } 59} 60