/* apl-iso.c. Produce a table of the ISO APL set (IR 68, 1983). Unicode mappings according to ISO-IEC / JTC 1 / SC 22 N 3067, 1999-12-28. Confusion with TACK symbols reflects confusion in the various APL sets as to whether the head or the point is the top. F. da Cruz, Columbia University, July 2000. */ struct charinfo { unsigned short uc; char * name } info[] = { 0x00a8, "DIAERESIS", 0x0029, "RIGHT PARENTHESIS", 0x003c, "LEFT CARET", 0x2264, "LESS THAN OR EQUAL SIGN", 0x003d, "EQUALS SIGN", 0x003e, "RIGHT CARET", 0x005d, "RIGHT SQUARE BRACKET", 0x2228, "DOWN CARET", 0x2227, "UP CARET", 0x2260, "NOT EQUAL SIGN", 0x00f7, "DIVIDE SIGN", 0x002c, "COMMA", 0x002b, "PLUS SIGN", 0x002e, "FULL STOP (PERIOD)", 0x002f, "SOLIDUS (SLASH, STROKE)", 0x0030, "DIGIT ZERO", 0x0031, "DIGIT ONE", 0x0032, "DIGIT TWO", 0x0033, "DIGIT THREE", 0x0034, "DIGIT FOUR", 0x0035, "DIGIT FIVE", 0x0036, "DIGIT SIX", 0x0037, "DIGIT SEVEN", 0x0038, "DIGIT EIGHT", 0x0039, "DIGIT NINE", 0x0028, "LEFT PARENTHESIS", 0x005b, "LEFT SQUARE BRACKET", 0x003b, "SEMI-COLON", 0x00d7, "MULTIPLY SIGN", 0x003a, "COLON", 0x005c, "REVERSE SOLIDUS (BACK SLASH, STRIKE)", 0x00af, "OVERBAR", 0x237a, "SMALL GREEK LETTER ALPHA", /* 03b1 */ 0x22a5, "DOWN (UP) TACK", 0x22c2, "UP SHOE (CAP)", 0x230a, "DOWN STILE", 0x220a, "SMALL GREEK LETTER EPSILON", /* 03b5 */ 0x005f, "UNDERBAR", 0x2207, "DEL", 0x2206, "CAPITAL GREEK LETTER DELTA", 0x2373, "SMALL GREEK LETTER IOTA", /* 03b9 */ 0x2218, "JOT", 0x0027, "SINGLE QUOTE", 0x25af, "QUAD", /* 2395 */ 0x007c, "VERTICAL LINE (STILE, VIRGULE)", 0x22a4, "UP (DOWN) TACK", 0x25cb, "CIRCLE", 0x22c6, "ASTERISK (STAR)", 0x003f, "QUESTION MARK (QUERY)", 0x2374, "SMALL GREEK LETTER RHO", 0x2308, "UP STILE", 0x223c, "TILDE", 0x2193, "DOWN ARROW", 0x222a, "DOWN SHOE (CUP)", /* 22c3 */ 0x2375, "SMALL GREEK LETTER OMEGA", /* 03c9 */ 0x2283, "RIGHT SHOE", 0x2191, "UP ARROW", 0x2282, "LEFT SHOE", 0x2190, "LEFT ARROW", 0x22a2, "LEFT (RIGHT) TACK", 0x2192, "RIGHT ARROW", 0x2265, "GREATER THAN OR EQUAL SIGN", 0x002d, "MINUS SIGN (BAR)", 0x22c4, "DIAMOND", 0x0041, "CAPITAL APL LETTER A", 0x0042, "CAPITAL APL LETTER B", 0x0043, "CAPITAL APL LETTER C", 0x0044, "CAPITAL APL LETTER D", 0x0045, "CAPITAL APL LETTER E", 0x0046, "CAPITAL APL LETTER F", 0x0047, "CAPITAL APL LETTER G", 0x0048, "CAPITAL APL LETTER H", 0x0049, "CAPITAL APL LETTER I", 0x004a, "CAPITAL APL LETTER J", 0x004b, "CAPITAL APL LETTER K", 0x004c, "CAPITAL APL LETTER L", 0x004d, "CAPITAL APL LETTER M", 0x004e, "CAPITAL APL LETTER N", 0x004f, "CAPITAL APL LETTER O", 0x0050, "CAPITAL APL LETTER P", 0x0051, "CAPITAL APL LETTER Q", 0x0052, "CAPITAL APL LETTER R", 0x0053, "CAPITAL APL LETTER S", 0x0054, "CAPITAL APL LETTER T", 0x0055, "CAPITAL APL LETTER U", 0x0056, "CAPITAL APL LETTER V", 0x0057, "CAPITAL APL LETTER W", 0x0058, "CAPITAL APL LETTER X", 0x0059, "CAPITAL APL LETTER Y", 0x005a, "CAPITAL APL LETTER Z", 0x007b, "LEFT CURLY BRACKET (LEFT BRACE)", 0x22a3, "RIGHT (LEFT) TACK", 0x007d, "RIGHT CURLY BRACKET (RIGHT BRACE)", 0x0024, "DOLLAR SIGN", 0, "" }; main() { int i, j; char c; printf("%c(B%c)e",'\033','\033'); printf("APL ISO Registration 68, 1 June 1983\n"); printf("char dec col/row oct hex unicod description\n"); for (i = 33; i < 127; i++) { j = i - 33; c = i; printf("(%c%c%c) %3d %02d/%02d %3o %2X %04X %s\n", '\016', c, '\017', i, i/16, i%16, i, i, (unsigned int)info[j].uc, info[j].name); } }