Idiomatically determine all the characters that can be used for symbols: Difference between revisions

Content added Content deleted
m (→‎{{header|ooRexx}}: final (?) fix)
Line 15: Line 15:
* [[Idiomatically_determine_all_the_lowercase_and_uppercase_letters|Idiomatically determine all the lowercase and uppercase letters]].
* [[Idiomatically_determine_all_the_lowercase_and_uppercase_letters|Idiomatically determine all the lowercase and uppercase letters]].


=={{header|AWK}}==
<lang AWK>
# syntax: GAWK -f IDIOMATICALLY_DETERMINE_ALL_THE_CHARACTERS_THAT_CAN_BE_USED_FOR_SYMBOLS.AWK
BEGIN {
fn = "TEMP.AWK"
cmd = sprintf("GAWK -f %s 2>NUL",fn)
for (i=0; i<=255; i++) {
c = sprintf("%c",i)
if (c ~ /\x09|\x0D|\x0A|\x20/) { ng++; continue } # tab,CR,LF,space
(run(c) == 0) ? (ok1 = ok1 c) : (ng1 = ng1 c) # 1st character
(run("_" c) == 0) ? (ok2 = ok2 c) : (ng2 = ng2 c) # 2nd..nth character
}
printf("1st character: %d NG, %d OK %s\n",length(ng1)+ng,length(ok1),ok1)
printf("2nd..nth char: %d NG, %d OK %s\n",length(ng2)+ng,length(ok2),ok2)
exit(0)
}
function run(c, rc) {
printf("BEGIN{%s+=0}\n",c) >fn
close(fn)
rc = system(cmd)
return(rc)
}
</lang>
<p>output:</p>
<pre>
1st character: 203 NG, 53 OK ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
2nd..nth char: 193 NG, 63 OK 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
</pre>
=={{header|J}}==
=={{header|J}}==