The correct answer is C.
A terminal table consists of a full or partial list of the tokens as they appear in the program. Created by lexical analysis and used for syntax analysis and interpretation.
A token is a single word or symbol that has meaning in a programming language. Tokens are created by lexical analysis, which is the first step in the compilation or interpretation of a program. Lexical analysis scans the program text and identifies the individual tokens. The terminal table stores the tokens and their corresponding meanings. This information is used by the syntax analyzer to check the program for errors.
The other options are incorrect.
Option A is incorrect because the terminal table does not contain all constants in the program. The constants are stored in a separate table, called the symbol table.
Option B is incorrect because the terminal table is not a permanent table of decision rules. The decision rules are stored in a separate table, called the parse table.
Option D is incorrect because the terminal table is not a permanent table which lists all key words and special symbols of the language in symbolic form. The key words and special symbols are stored in a separate table, called the reserved word table.