import { byte } from 'js/types'; /** Map from token to keyword */ export const TOKEN_TO_STRING: Record = { 0x80: 'END', 0x81: 'FOR', 0x82: 'NEXT', 0x83: 'DATA', 0x84: 'INPUT', 0x85: 'DEL', 0x86: 'DIM', 0x87: 'READ', 0x88: 'GR', 0x89: 'TEXT', 0x8a: 'PR#', 0x8b: 'IN#', 0x8c: 'CALL', 0x8d: 'PLOT', 0x8e: 'HLIN', 0x8f: 'VLIN', 0x90: 'HGR2', 0x91: 'HGR', 0x92: 'HCOLOR=', 0x93: 'HPLOT', 0x94: 'DRAW', 0x95: 'XDRAW', 0x96: 'HTAB', 0x97: 'HOME', 0x98: 'ROT=', 0x99: 'SCALE=', 0x9a: 'SHLOAD', 0x9b: 'TRACE', 0x9c: 'NOTRACE', 0x9d: 'NORMAL', 0x9e: 'INVERSE', 0x9f: 'FLASH', 0xa0: 'COLOR=', 0xa1: 'POP=', 0xa2: 'VTAB', 0xa3: 'HIMEM:', 0xa4: 'LOMEM:', 0xa5: 'ONERR', 0xa6: 'RESUME', 0xa7: 'RECALL', 0xa8: 'STORE', 0xa9: 'SPEED=', 0xaa: 'LET', 0xab: 'GOTO', 0xac: 'RUN', 0xad: 'IF', 0xae: 'RESTORE', 0xaf: '&', 0xb0: 'GOSUB', 0xb1: 'RETURN', 0xb2: 'REM', 0xb3: 'STOP', 0xb4: 'ON', 0xb5: 'WAIT', 0xb6: 'LOAD', 0xb7: 'SAVE', 0xb8: 'DEF', 0xb9: 'POKE', 0xba: 'PRINT', 0xbb: 'CONT', 0xbc: 'LIST', 0xbd: 'CLEAR', 0xbe: 'GET', 0xbf: 'NEW', 0xc0: 'TAB(', 0xc1: 'TO', 0xc2: 'FN', 0xc3: 'SPC(', 0xc4: 'THEN', 0xc5: 'AT', 0xc6: 'NOT', 0xc7: 'STEP', 0xc8: '+', 0xc9: '-', 0xca: '*', 0xcb: '/', 0xcc: '^', 0xcd: 'AND', 0xce: 'OR', 0xcf: '>', 0xd0: '=', 0xd1: '<', 0xd2: 'SGN', 0xd3: 'INT', 0xd4: 'ABS', 0xd5: 'USR', 0xd6: 'FRE', 0xd7: 'SCRN(', 0xd8: 'PDL', 0xd9: 'POS', 0xda: 'SQR', 0xdb: 'RND', 0xdc: 'LOG', 0xdd: 'EXP', 0xde: 'COS', 0xdf: 'SIN', 0xe0: 'TAN', 0xe1: 'ATN', 0xe2: 'PEEK', 0xe3: 'LEN', 0xe4: 'STR$', 0xe5: 'VAL', 0xe6: 'ASC', 0xe7: 'CHR$', 0xe8: 'LEFT$', 0xe9: 'RIGHT$', 0xea: 'MID$' }; /** Map from keyword to token. */ export const STRING_TO_TOKEN: Record = { 'END': 0x80, 'FOR': 0x81, 'NEXT': 0x82, 'DATA': 0x83, 'INPUT': 0x84, 'DEL': 0x85, 'DIM': 0x86, 'READ': 0x87, 'GR': 0x88, 'TEXT': 0x89, 'PR#': 0x8a, 'IN#': 0x8b, 'CALL': 0x8c, 'PLOT': 0x8d, 'HLIN': 0x8e, 'VLIN': 0x8f, 'HGR2': 0x90, 'HGR': 0x91, 'HCOLOR=': 0x92, 'HPLOT': 0x93, 'DRAW': 0x94, 'XDRAW': 0x95, 'HTAB': 0x96, 'HOME': 0x97, 'ROT=': 0x98, 'SCALE=': 0x99, 'SHLOAD': 0x9a, 'TRACE': 0x9b, 'NOTRACE': 0x9c, 'NORMAL': 0x9d, 'INVERSE': 0x9e, 'FLASH': 0x9f, 'COLOR=': 0xa0, 'POP=': 0xa1, 'VTAB': 0xa2, 'HIMEM:': 0xa3, 'LOMEM:': 0xa4, 'ONERR': 0xa5, 'RESUME': 0xa6, 'RECALL': 0xa7, 'STORE': 0xa8, 'SPEED=': 0xa9, 'LET': 0xaa, 'GOTO': 0xab, 'RUN': 0xac, 'IF': 0xad, 'RESTORE': 0xae, '&': 0xaf, 'GOSUB': 0xb0, 'RETURN': 0xb1, 'REM': 0xb2, 'STOP': 0xb3, 'ON': 0xb4, 'WAIT': 0xb5, 'LOAD': 0xb6, 'SAVE': 0xb7, 'DEF': 0xb8, 'POKE': 0xb9, 'PRINT': 0xba, 'CONT': 0xbb, 'LIST': 0xbc, 'CLEAR': 0xbd, 'GET': 0xbe, 'NEW': 0xbf, 'TAB(': 0xc0, 'TO': 0xc1, 'FN': 0xc2, 'SPC(': 0xc3, 'THEN': 0xc4, 'AT': 0xc5, 'NOT': 0xc6, 'STEP': 0xc7, '+': 0xc8, '-': 0xc9, '*': 0xca, '/': 0xcb, '^': 0xcc, 'AND': 0xcd, 'OR': 0xce, '>': 0xcf, '=': 0xd0, '<': 0xd1, 'SGN': 0xd2, 'INT': 0xd3, 'ABS': 0xd4, 'USR': 0xd5, 'FRE': 0xd6, 'SCRN(': 0xd7, 'PDL': 0xd8, 'POS': 0xd9, 'SQR': 0xda, 'RND': 0xdb, 'LOG': 0xdc, 'EXP': 0xdd, 'COS': 0xde, 'SIN': 0xdf, 'TAN': 0xe0, 'ATN': 0xe1, 'PEEK': 0xe2, 'LEN': 0xe3, 'STR$': 0xe4, 'VAL': 0xe5, 'ASC': 0xe6, 'CHR$': 0xe7, 'LEFT$': 0xe8, 'RIGHT$': 0xe9, 'MID$': 0xea };