package nxm.sys.inc;

/** Numerical equivalent definitions of special ASCII characters.
    <pre>
      The ASCII Character Set:

            0       1        2       3       4       5        6        7
      0   0 NUL  16 DLE   32      48 0    64 @    80 P     96 `    112 p    0
      1   1 SOH  17 DC1   33 !    49 1    65 A    81 Q     97 a    113 q    1
      2   2 STX  18 DC2   34 "    50 2    66 B    82 R     98 b    114 r    2
      3   3 ETX  19 DC3   35 #    51 3    67 C    83 S     99 c    115 s    3
      4   4 EOT  20 DC4   36 $    52 4    68 D    84 T    100 d    116 t    4
      5   5 ENQ  21 NAK   37 %    53 5    69 E    85 U    101 e    117 u    5
      6   6 ACK  22 SYN   38 &amp;    54 6    70 F    86 V    102 f    118 v    6
      7   7 BEL  23 ETB   39 '    55 7    71 G    87 W    103 g    119 w    7
      8   8 BS   24 CAN   40 (    56 8    72 H    88 X    104 h    120 x    8
      9   9 HT   25 EM    41 )    57 9    73 I    89 Y    105 i    121 y    9
      A  10 LF   26 SUB   42 *    58 :    74 J    90 Z    106 j    122 z    A
      B  11 VT   27 ESC   43 +    59 ;    75 K    91 [    107 k    123 {    B
      C  12 FF   28 FS    44 ,    60 &lt;    76 L    92 \    108 l    124 |    C
      D  13 CR   28 GS    45 -    61 =    77 M    93 ]    109 m    125 }    D
      E  14 SO   30 RS    46 .    62 &gt;    78 N    94 ^    110 n    126 ~    E
      F  15 SI   31 US    47 /    63 ?    79 O    95 _    111 o    127 DEL  F
            0       1        2       3       4       5        6        7
    </pre>

    @author Jeff Schoen
    @version $Id: AsciiMap.java,v 1.13 2014/10/08 21:15:19 ntn Exp $
 */
public interface AsciiMap {

  /** The ASCII null (<code>'\0'</code>) character.   */ char NULL   =   0;
  /* SHO = 1 */
  /* STX = 2 */
  /* ETX = 3 */
  /* EOT = 4 */
  /* ENQ = 5 */
  /* ACK = 6 */
  /* BEL = 7 */
  /* BS  = 8 */
  /** The ASCII tab (<code>'\t'</code>) character.    */ char HTAB   =   9;
  /** The ASCII linefeed (<code>'\n'</code>)
      character used to terminate a line in unix.     */ char LF     =  10;
  /* VT = 11 */
  /* NP = 12 */
  /** The ASCII carriage-return (<code>'\r'</code>)
      character used in combination with {@link #LF}
      to terminate a line in Windows.                 */ char CR     =  13;
  /* SO  = 14 */
  /* SI  = 15 */
  /* DLE = 16 */
  /* DC1 = 17 */
  /* DC2 = 18 */
  /* DC3 = 19 */
  /* DC4 = 20 */
  /* NAK = 21 */
  /* SYN = 22 */
  /* ETB = 23 */
  /* CAN = 24 */
  /* EM  = 25 */
  /* SUB = 26 */
  /* ESC = 27 */
  /* FS  = 28 */
  /* GS  = 29 */
  /* RS  = 30 */
  /* US  = 31 */
  /** The ASCII space (<code>' '</code>) character.   */ char SPACE  =  32;
  /** The ASCII bang/exclamation-point character.     */ char BANG   =  33;
  /** The ASCII double-quote (<code>'\"'</code>).     */ char QUOTE  =  34;
  /* '#' = 35 */
  /* '$' = 36 */
  /* '%' = 37 */
  /* '&' = 38 */
  /** The ASCII single-quote (<code>'\''</code>).     */ char FTIC   =  39;
  /** The ASCII left-parenthesis (<code>'('</code>).  */ char LPAREN =  40;
  /** The ASCII right-parenthesis (<code>')'</code>). */ char RPAREN =  41;
  /* '*' = 42 */
  /** The ASCII plus-sign (<code>'+'</code>).         */ char PLUS   =  43;
  /** The ASCII comma (<code>','</code>).             */ char COMMA  =  44;
  /** The ASCII minus-sign (<code>'-'</code>).        */ char MINUS  =  45;
  /** The ASCII period.                               */ char PERIOD =  46;
  /** The ASCII forward-slash (<code>'/'</code>).     */ char SLASH  =  47;
  /** The ASCII zero (<code>'0'</code>).              */ char ZERO   =  48;
  /* '1' to '8' = 49 to 56 */
  /** The ASCII nine (<code>'9'</code>).              */ char NINE   =  57;
  /** The ASCII colon (<code>':'</code>).             */ char COLON  =  58;
  /** The ASCII semi-colon (<code>';'</code>).        */ char SCOLON =  59;
  /* '<' = 60 */
  /** The ASCII equals-sign (<code>'='</code>).       */ char EQUALS =  61;
  /* '>' = 62 */
  /* '?' = 63 */
  /* '@' = 64 */
  /** The ASCII uppercase A (<code>'A'</code>).       */ char UPPERA =  65;
  /* 'B' to 'Y' = 66 to 89 */
  /** The ASCII uppercase Z (<code>'Z'</code>).       */ char UPPERZ =  90;
  /** The ASCII left bracket (<code>'['</code>).      */ char LBRACE =  91;
  /** The ASCII back-slash (<code>'\\'</code>).       */ char BSLASH =  92;
  /** The ASCII right bracket (<code>']'</code>).     */ char RBRACE =  93;
  /** The ASCII caret (<code>'^'</code>).             */ char CARET  =  94;
  /* '_' = 95 */
  /** The ASCII back-quote (<code>'`'</code>).        */ char BTIC   =  96;
  /** The ASCII lowercase a (<code>'a'</code>).       */ char LOWERA =  97;
  /* 'b' to 'y' = 98 to 121 */
  /** The ASCII lowercase z (<code>'z'</code>).       */ char LOWERZ = 122;
  /** The ASCII left curly brace (<code>'{'</code>).  */ char LCURLY = 123;
  /** The ASCII right curly brace (<code>'}'</code>). */ char RCURLY = 125;
  /** The ASCII tilde (<code>'~'</code>) character.   */ char TILDE  = 126;
  /* DEL = 127 */

  /** The value to add to convert an uppercase ASCII character to its
      lowercase form. For example <code>'A' + UPPER2LOWER = 'a'</code>.
      Note that <code>UPPER2LOWER = -(LOWER2UPPER)</code>.

      @see #LOWER2UPPER
   */
  int UPPER2LOWER = 32;


  /** The value to add to convert a lowercase ASCII character to its
      uppercase form. For example <code>'a' + LOWER2UPPER = 'A'</code>.
      Note that <code>UPPER2LOWER = -(LOWER2UPPER)</code>.

      @see #UPPER2LOWER
   */
  int LOWER2UPPER = -32;
} // end interface AsciiMap
