const MAXSTR = 128; LORAD = 2; HIRAD = 16; MAXB = 16; { number of bytes in a number (16 is probably max). } MAXBIT = 255; { MAXB * 8 - 1 } NUMS : string[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; type char_set = set of char; bits = set of 0..MAXBIT; const NUMDIGIT : char_set = ['0'..'9', 'A'..'F', 'a'..'f']; WHITESPACE : char_set = [' ']; OPCHARS : char_set = ['+', '-', '*', '/', '%', '&', '|', '^', '~', '!']; PARENS : char_set = ['(', ')']; neg_one : bits = [0..MAXBIT]; type str = string[MAXSTR]; sign = -1..1; num_arr = array[1..MAXB] of byte; number = record case boolean of false : (n : num_arr; s : sign); true : (b : bits); end; var zero_n : number; num, ans : str; in_rad, out_rad : integer; inst : char; args : str; voidi : integer; voids : str;