Reserved Words

All Turbo Pascal reserved words are stored in a dedicated symbol table.
Const NumResWords = 49;
      ReservedWord: Array [1..NumResWords] of String = (
        'AND',
        'ARRAY',
        'BEGIN',
        'CASE',
        'CONST',
        'CONSTRUCTOR',
        'DESTRUCTOR',
        'DIV',
        'DO',
        'DOWNTO',
        'ELSE',
        'END',
        'ASM',
        'FILE',
        'FOR',
        'FUNCTION',
        'GOTO',
        'IF',
        'IMPLEMENTATION',
        'IN',
        'INLINE',
        'INTERFACE',
        'LABEL',
        'MOD',
        'NIL',
        'NOT',
        'OBJECT',
        'OF',
        'OR',
        'PACKED',
        'PROCEDURE',
        'PROGRAM',
        'RECORD',
        'REPEAT',
        'SET',
        'SHL',
        'SHR',
        'STRING',
        'THEN',
        'TYPE',
        'TO',
        'UNIT',
        'UNTIL',
        'USES',
        'VAR',
        'INHERITED',
        'WHILE',
        'WITH',
        'XOR');
Of course, this symbol table was not created manually but with a software which calculated hashes and put reserved words into right linked lists.
Const

  Ofs_00_01: Word = 0;
  Tok_00_01: TToken = Token_AND;
  ResWordLen_AND: Byte = 3;
  ResWord_AND: Array [1..3] of Char = 'AND';

  Ofs_00_02: Word = Ofs (Ofs_00_01);
  Tok_00_02: TToken = Token_BEGIN;
  ResWordLen_BEGIN: Byte = 5;
  ResWord_BEGIN: Array [1..5] of Char = 'BEGIN';

  Ofs_00_03: Word = Ofs (Ofs_00_02);
  Tok_00_03: TToken = Token_DIV;
  ResWordLen_DIV: Byte = 3;
  ResWord_DIV: Array [1..3] of Char = 'DIV';

  Ofs_00_04: Word = Ofs (Ofs_00_03);
  Tok_00_04: TToken = Token_NIL;
  ResWordLen_NIL: Byte = 3;
  ResWord_NIL: Array [1..3] of Char = 'NIL';

  Ofs_00_05: Word = Ofs (Ofs_00_04);
  Tok_00_05: TToken = Token_PROCEDURE;
  ResWordLen_PROCEDURE: Byte = 9;
  ResWord_PROCEDURE: Array [1..9] of Char = 'PROCEDURE';

  Ofs_01_01: Word = 0;
  Tok_01_01: TToken = Token_DO;
  ResWordLen_DO: Byte = 2;
  ResWord_DO: Array [1..2] of Char = 'DO';

  Ofs_01_02: Word = Ofs (Ofs_01_01);
  Tok_01_02: TToken = Token_OBJECT;
  ResWordLen_OBJECT: Byte = 6;
  ResWord_OBJECT: Array [1..6] of Char = 'OBJECT';

  Ofs_01_03: Word = Ofs (Ofs_01_02);
  Tok_01_03: TToken = Token_PROGRAM;
  ResWordLen_PROGRAM: Byte = 7;
  ResWord_PROGRAM: Array [1..7] of Char = 'PROGRAM';

  Ofs_01_04: Word = Ofs (Ofs_01_03);
  Tok_01_04: TToken = Token_STRING;
  ResWordLen_STRING: Byte = 6;
  ResWord_STRING: Array [1..6] of Char = 'STRING';

  Ofs_01_05: Word = Ofs (Ofs_01_04);
  Tok_01_05: TToken = Token_TO;
  ResWordLen_TO: Byte = 2;
  ResWord_TO: Array [1..2] of Char = 'TO';

  Ofs_02_01: Word = 0;
  Tok_02_01: TToken = Token_CONST;
  ResWordLen_CONST: Byte = 5;
  ResWord_CONST: Array [1..5] of Char = 'CONST';

  Ofs_02_02: Word = Ofs (Ofs_02_01);
  Tok_02_02: TToken = Token_PACKED;
  ResWordLen_PACKED: Byte = 6;
  ResWord_PACKED: Array [1..6] of Char = 'PACKED';

  Ofs_03_01: Word = 0;
  Tok_03_01: TToken = Token_OF;
  ResWordLen_OF: Byte = 2;
  ResWord_OF: Array [1..2] of Char = 'OF';

  Ofs_03_02: Word = Ofs (Ofs_03_01);
  Tok_03_02: TToken = Token_INHERITED;
  ResWordLen_INHERITED: Byte = 9;
  ResWord_INHERITED: Array [1..9] of Char = 'INHERITED';

  Ofs_04_01: Word = 0;
  Tok_04_01: TToken = Token_END;
  ResWordLen_END: Byte = 3;
  ResWord_END: Array [1..3] of Char = 'END';

  Ofs_04_02: Word = Ofs (Ofs_04_01);
  Tok_04_02: TToken = Token_FOR;
  ResWordLen_FOR: Byte = 3;
  ResWord_FOR: Array [1..3] of Char = 'FOR';

  Ofs_04_03: Word = Ofs (Ofs_04_02);
  Tok_04_03: TToken = Token_SHL;
  ResWordLen_SHL: Byte = 3;
  ResWord_SHL: Array [1..3] of Char = 'SHL';

  Ofs_04_04: Word = Ofs (Ofs_04_03);
  Tok_04_04: TToken = Token_WHILE;
  ResWordLen_WHILE: Byte = 5;
  ResWord_WHILE: Array [1..5] of Char = 'WHILE';

  Ofs_05_01: Word = 0;
  Tok_05_01: TToken = Token_DESTRUCTOR;
  ResWordLen_DESTRUCTOR: Byte = 10;
  ResWord_DESTRUCTOR: Array [1..10] of Char = 'DESTRUCTOR';

  Ofs_05_02: Word = Ofs (Ofs_05_01);
  Tok_05_02: TToken = Token_DOWNTO;
  ResWordLen_DOWNTO: Byte = 6;
  ResWord_DOWNTO: Array [1..6] of Char = 'DOWNTO';

  Ofs_05_03: Word = Ofs (Ofs_05_02);
  Tok_05_03: TToken = Token_ELSE;
  ResWordLen_ELSE: Byte = 4;
  ResWord_ELSE: Array [1..4] of Char = 'ELSE';

  Ofs_05_04: Word = Ofs (Ofs_05_03);
  Tok_05_04: TToken = Token_GOTO;
  ResWordLen_GOTO: Byte = 4;
  ResWord_GOTO: Array [1..4] of Char = 'GOTO';

  Ofs_05_05: Word = Ofs (Ofs_05_04);
  Tok_05_05: TToken = Token_IN;
  ResWordLen_IN: Byte = 2;
  ResWord_IN: Array [1..2] of Char = 'IN';

  Ofs_06_01: Word = 0;
  Tok_06_01: TToken = Token_VAR;
  ResWordLen_VAR: Byte = 3;
  ResWord_VAR: Array [1..3] of Char = 'VAR';

  Ofs_06_02: Word = Ofs (Ofs_06_01);
  Tok_06_02: TToken = Token_XOR;
  ResWordLen_XOR: Byte = 3;
  ResWord_XOR: Array [1..3] of Char = 'XOR';

  Ofs_07_01: Word = 0;
  Tok_07_01: TToken = Token_UNTIL;
  ResWordLen_UNTIL: Byte = 5;
  ResWord_UNTIL: Array [1..5] of Char = 'UNTIL';

  Ofs_08_01: Word = 0;
  Tok_08_01: TToken = Token_CASE;
  ResWordLen_CASE: Byte = 4;
  ResWord_CASE: Array [1..4] of Char = 'CASE';

  Ofs_08_02: Word = Ofs (Ofs_08_01);
  Tok_08_02: TToken = Token_IMPLEMENTATION;
  ResWordLen_IMPLEMENTATION: Byte = 14;
  ResWord_IMPLEMENTATION: Array [1..14] of Char = 'IMPLEMENTATION';

  Ofs_08_03: Word = Ofs (Ofs_08_02);
  Tok_08_03: TToken = Token_INTERFACE;
  ResWordLen_INTERFACE: Byte = 9;
  ResWord_INTERFACE: Array [1..9] of Char = 'INTERFACE';

  Ofs_08_04: Word = Ofs (Ofs_08_03);
  Tok_08_04: TToken = Token_WITH;
  ResWordLen_WITH: Byte = 4;
  ResWord_WITH: Array [1..4] of Char = 'WITH';

  Ofs_09_01: Word = 0;
  Tok_09_01: TToken = Token_INLINE;
  ResWordLen_INLINE: Byte = 6;
  ResWord_INLINE: Array [1..6] of Char = 'INLINE';

  Ofs_09_02: Word = Ofs (Ofs_09_01);
  Tok_09_02: TToken = Token_RECORD;
  ResWordLen_RECORD: Byte = 6;
  ResWord_RECORD: Array [1..6] of Char = 'RECORD';

  Ofs_09_03: Word = Ofs (Ofs_09_02);
  Tok_09_03: TToken = Token_SET;
  ResWordLen_SET: Byte = 3;
  ResWord_SET: Array [1..3] of Char = 'SET';

  Ofs_0A_01: Word = 0;
  Tok_0A_01: TToken = Token_ARRAY;
  ResWordLen_ARRAY: Byte = 5;
  ResWord_ARRAY: Array [1..5] of Char = 'ARRAY';

  Ofs_0A_02: Word = Ofs (Ofs_0A_01);
  Tok_0A_02: TToken = Token_SHR;
  ResWordLen_SHR: Byte = 3;
  ResWord_SHR: Array [1..3] of Char = 'SHR';

  Ofs_0B_01: Word = 0;
  Tok_0B_01: TToken = Token_CONSTRUCTOR;
  ResWordLen_CONSTRUCTOR: Byte = 11;
  ResWord_CONSTRUCTOR: Array [1..11] of Char = 'CONSTRUCTOR';

  Ofs_0B_02: Word = Ofs (Ofs_0B_01);
  Tok_0B_02: TToken = Token_LABEL;
  ResWordLen_LABEL: Byte = 5;
  ResWord_LABEL: Array [1..5] of Char = 'LABEL';

  Ofs_0B_03: Word = Ofs (Ofs_0B_02);
  Tok_0B_03: TToken = Token_REPEAT;
  ResWordLen_REPEAT: Byte = 6;
  ResWord_REPEAT: Array [1..6] of Char = 'REPEAT';

  Ofs_0B_04: Word = Ofs (Ofs_0B_03);
  Tok_0B_04: TToken = Token_THEN;
  ResWordLen_THEN: Byte = 4;
  ResWord_THEN: Array [1..4] of Char = 'THEN';

  Ofs_0C_01: Word = 0;
  Tok_0C_01: TToken = Token_FILE;
  ResWordLen_FILE: Byte = 4;
  ResWord_FILE: Array [1..4] of Char = 'FILE';

  Ofs_0C_02: Word = Ofs (Ofs_0C_01);
  Tok_0C_02: TToken = Token_UNIT;
  ResWordLen_UNIT: Byte = 4;
  ResWord_UNIT: Array [1..4] of Char = 'UNIT';

  Ofs_0C_03: Word = Ofs (Ofs_0C_02);
  Tok_0C_03: TToken = Token_USES;
  ResWordLen_USES: Byte = 4;
  ResWord_USES: Array [1..4] of Char = 'USES';

  Ofs_0D_01: Word = 0;
  Tok_0D_01: TToken = Token_IF;
  ResWordLen_IF: Byte = 2;
  ResWord_IF: Array [1..2] of Char = 'IF';

  Ofs_0D_02: Word = Ofs (Ofs_0D_01);
  Tok_0D_02: TToken = Token_MOD;
  ResWordLen_MOD: Byte = 3;
  ResWord_MOD: Array [1..3] of Char = 'MOD';

  Ofs_0E_01: Word = 0;
  Tok_0E_01: TToken = Token_ASM;
  ResWordLen_ASM: Byte = 3;
  ResWord_ASM: Array [1..3] of Char = 'ASM';

  Ofs_0E_02: Word = Ofs (Ofs_0E_01);
  Tok_0E_02: TToken = Token_FUNCTION;
  ResWordLen_FUNCTION: Byte = 8;
  ResWord_FUNCTION: Array [1..8] of Char = 'FUNCTION';

  Ofs_0E_03: Word = Ofs (Ofs_0E_02);
  Tok_0E_03: TToken = Token_NOT;
  ResWordLen_NOT: Byte = 3;
  ResWord_NOT: Array [1..3] of Char = 'NOT';

  Ofs_0E_04: Word = Ofs (Ofs_0E_03);
  Tok_0E_04: TToken = Token_TYPE;
  ResWordLen_TYPE: Byte = 4;
  ResWord_TYPE: Array [1..4] of Char = 'TYPE';

  Ofs_0F_01: Word = 0;
  Tok_0F_01: TToken = Token_OR;
  ResWordLen_OR: Byte = 2;
  ResWord_OR: Array [1..2] of Char = 'OR';


  ReservedWords: Word = $001E;

  OfsGroup_00: Word = Ofs (Ofs_00_05);
  OfsGroup_01: Word = Ofs (Ofs_01_05);
  OfsGroup_02: Word = Ofs (Ofs_02_02);
  OfsGroup_03: Word = Ofs (Ofs_03_02);
  OfsGroup_04: Word = Ofs (Ofs_04_04);
  OfsGroup_05: Word = Ofs (Ofs_05_05);
  OfsGroup_06: Word = Ofs (Ofs_06_02);
  OfsGroup_07: Word = Ofs (Ofs_07_01);
  OfsGroup_08: Word = Ofs (Ofs_08_04);
  OfsGroup_09: Word = Ofs (Ofs_09_03);
  OfsGroup_0A: Word = Ofs (Ofs_0A_02);
  OfsGroup_0B: Word = Ofs (Ofs_0B_04);
  OfsGroup_0C: Word = Ofs (Ofs_0C_03);
  OfsGroup_0D: Word = Ofs (Ofs_0D_02);
  OfsGroup_0E: Word = Ofs (Ofs_0E_04);
  OfsGroup_0F: Word = Ofs (Ofs_0F_01);
 
 
 
© 2017 Turbo Pascal | Privacy Policy