/* aplchar.h APL2 V1.0.0 - Copyright 1993 Thomas Glen Smith ************ * Contains three global variables: * * 1) aplchar - A char array containing representations of the APL * * character set, allowing a standard PC keyboard to be used for * * entering APL statements. * * 2) aplchno - An int containing the number of elements in aplchar. * * 3) aplmxln - An int giving the maximum length element in aplchar. * * Aplchar.h can be replaced or changed with these provisos: * * 1) Each element must be left-to-right unique, i.e. it would not * * work to have one element be "A" and another "AB". * * 2) Any change to aplchar.h must be reflected in aplchdef.h. * * 3) Some elements must be a single character, as indicated in the * * comments below. * * See also aplchax.h. * ***********************************************************************/ #if !defined(APLCHAR_INCL) #define APLCHAR_INCL #define APLCHNO 137 int aplchno = APLCHNO; int aplmxln = 2; /* maximum element length */ char *aplchar[APLCHNO] = { " ", /* 0 '\x2000' space - must be single character */ "!", /* 1 '\x2100' quote dot (binomial, factorial */ "\"", /* 2 '\x2200' cap null (comment */ "#", /* 3 '\x2300' left arrow (assignment */ "$", /* 4 '\x2400' right arrow (branch) */ "%", /* 5 '\x2500' divide (divide) */ "&", /* 6 '\x2600' and (and) */ "'", /* 7 '\x2700' quote (character constants) single char */ "(", /* 8 '\x2800' left paren (order of execution) */ ")", /* 9 '\x2900' right paren (order of execution) */ "*", /* 10 '\x2a00' star (exponential, power) */ "+", /* 11 '\x2b00' plus (plus, conjugate) */ ",", /* 12 '\x2c00' comma (catenate, laminate, ravel) */ "-", /* 13 '\x2d00' overbar (negative numbers) */ ".", /* 14 '\x2e00' dot (inner, outer product) m/b single ch*/ "/", /* 15 '\x2f00' slash (compress, reduction) */ "0", /* 16 '\x3000' digit 0 digits must be contiguous, and */ "1", /* 17 '\x3100' digit 1 must be single characters. */ "2", /* 18 '\x3200' digit 2 */ "3", /* 19 '\x3300' digit 3 */ "4", /* 20 '\x3400' digit 4 */ "5", /* 21 '\x3500' digit 5 */ "6", /* 22 '\x3600' digit 6 */ "7", /* 23 '\x3700' digit 7 */ "8", /* 24 '\x3800' digit 8 */ "9", /* 25 '\x3900' digit 9 */ ":", /* 26 '\x3a00' colon (labels) */ ";", /* 27 '\x3b00' semicolon (function header, indexing) */ "<", /* 28 '\x3c00' less (less than) */ "=", /* 29 '\x3d00' equal (equal) */ ">", /* 30 '\x3e00' greater (greater than) */ "?", /* 31 '\x3f00' query (deal, roll) */ "@", /* 32 '\x4000' log (general and natural logarithm) */ "A", /* 33 '\x4100' delta stile (grade up) */ "B", /* 34 '\x4200' base (decode) */ "C", /* 35 '\x4300' base null (execute) */ "D", /* 36 '\x4400' downstile (floor, minimum) */ "E", /* 37 '\x4500' epsilon (membership) */ "F", /* 38 '\x4600' top null (format) */ "G", /* 39 '\x4700' del */ "H", /* 40 '\x4800' delta */ "I", /* 41 '\x4900' iota (index generator, index of) */ "J", /* 42 '\x4a00' null (inner product, outer product) */ "K", /* 43 '\x4b00' not greater (not greater) */ "L", /* 44 '\x4c00' quad (evaluated input) single chara*/ "M", /* 45 '\x4d00' domino (matrix divide and inverse) */ "N", /* 46 '\x4e00' top (encode) */ "O", /* 47 '\x4f00' circle (cirular, hyperbolic, pythagorus,*/ "P", /* 48 '\x5000' nand (nand) */ "Q", /* 49 '\x5100' quote-quad (character input) */ "R", /* 50 '\x5200' rho (reshape, shape) */ "S", /* 51 '\x5300' upstile (ceiling, maximum) */ "T", /* 52 '\x5400' circle slope (transpose) */ "U", /* 53 '\x5500' down arrow (drop) */ "V", /* 54 '\x5600' or (or) */ "W", /* 55 '\x5700' del stile (grade down) */ "X", /* 56 '\x5800' times (signum, times) */ "Y", /* 57 '\x5900' up arrow (take) */ "Z", /* 58 '\x5a00' not less (not less) */ "[", /* 59 '\x5b00' left bracket (axis, indexing) */ "\\", /* 60 '\x5c00' slope (expand, scan) */ "]", /* 61 '\x5d00' right bracket (axis, indexing) */ "^=", /* 62 '\x5e3d00' not equal (exclusize or) */ "_", /* 63 '\x5f00' bar (minus, negative) */ "`/", /* 64 '\x602f00' slash bar (compress, reduction) */ "`1", /* 65 '\x603100' dieresis */ "`A", /* 66 '\x604100' alpha */ "`C", /* 67 '\x604300' cap */ "`G", /* 68 '\x604700' del tilde */ "`I", /* 69 '\x604900' I-beam */ "`O", /* 70 '\x604f00' circle stile (reverse, rotate) */ "`R", /* 71 '\x605200' circle bar (reverse) */ "`U", /* 72 '\x605500' cup */ "`V", /* 73 '\x605600' nor (nor) */ "`W", /* 74 '\x605700' omega */ "`X", /* 75 '\x605800' right shoe */ "`Z", /* 76 '\x605a00' left shoe */ "`\\", /* 77 '\x605c00' slope bar (expand, scan) */ "`_", /* 78 '\x605f00' underbar */ /* Alphabetics should be contiguous */ "`a", /* 79 '\x606100' Alphabetic A underscored */ "`b", /* 80 '\x606200' Alphabetic B underscored */ "`c", /* 81 '\x606300' Alphabetic C underscored */ "`d", /* 82 '\x606400' Alphabetic D underscored */ "`e", /* 83 '\x606500' Alphabetic E underscored */ "`f", /* 84 '\x606600' Alphabetic F underscored */ "`g", /* 85 '\x606700' Alphabetic G underscored */ "`h", /* 86 '\x606800' Alphabetic H underscored */ "`i", /* 87 '\x606900' Alphabetic I underscored */ "`j", /* 88 '\x606a00' Alphabetic J underscored */ "`k", /* 89 '\x606b00' Alphabetic K underscored */ "`l", /* 90 '\x606c00' Alphabetic L underscored */ "`m", /* 91 '\x606d00' Alphabetic M underscored */ "`n", /* 92 '\x606e00' Alphabetic N underscored */ "`o", /* 93 '\x606f00' Alphabetic O underscored */ "`p", /* 94 '\x607000' Alphabetic P underscored */ "`q", /* 95 '\x607100' Alphabetic Q underscored */ "`r", /* 96 '\x607200' Alphabetic R underscored */ "`s", /* 97 '\x607300' Alphabetic S underscored */ "`t", /* 98 '\x607400' Alphabetic T underscored */ "`u", /* 99 '\x607500' Alphabetic U underscored */ "`v", /*100 '\x607600' Alphabetic V underscored */ "`w", /*101 '\x607700' Alphabetic W underscored */ "`x", /*102 '\x607800' Alphabetic X underscored */ "`y", /*103 '\x607900' Alphabetic Y underscored */ "`z", /*104 '\x607a00' Alphabetic Z underscored */ "a", /*105 '\x6100' alphabetic A single character */ "b", /*106 '\x6200' alphabetic B single character */ "c", /*107 '\x6300' alphabetic C single character */ "d", /*108 '\x6400' alphabetic D single character */ "e", /*109 '\x6500' alphabetic E single character */ "f", /*110 '\x6600' alphabetic F single character */ "g", /*111 '\x6700' alphabetic G single character */ "h", /*112 '\x6800' alphabetic H single character */ "i", /*113 '\x6900' alphabetic I single character */ "j", /*114 '\x6a00' alphabetic J single character */ "k", /*115 '\x6b00' alphabetic K single character */ "l", /*116 '\x6c00' alphabetic L single character */ "m", /*117 '\x6d00' alphabetic M single character */ "n", /*118 '\x6e00' alphabetic N single character */ "o", /*119 '\x6f00' alphabetic O single character */ "p", /*120 '\x7000' alphabetic P single character */ "q", /*121 '\x7100' alphabetic Q single character */ "r", /*122 '\x7200' alphabetic R single character */ "s", /*123 '\x7300' alphabetic S single character */ "t", /*124 '\x7400' alphabetic T single character */ "u", /*125 '\x7500' alphabetic U single character */ "v", /*126 '\x7600' alphabetic V single character */ "w", /*127 '\x7700' alphabetic W single character */ "x", /*128 '\x7800' alphabetic X single character */ "y", /*129 '\x7900' alphabetic Y single character */ "z", /*130 '\x7a00' alphabetic Z single character */ "|", /*131 '\x7c00' stile (magnitude, residue) */ "~", /*132 '\x7e00' tilde (not) */ "`=", /*133 '\x603d00' equal underbar (depth) */ "`E", /*134 '\x604500' epsilon underbar (find) */ "`Q", /*135 '\x605100' squad (index) */ "`2" /*136 '\x603200' logamma */ }; #endif