cobol-interpreter-lab/lab-3/token.h

63 lines
1.2 KiB
C

typedef enum {
TOKEN_EOF = 0,
// Identification Keywords
TOKEN_IDENTIFICATION,
TOKEN_KEYWORD_DIVISION,
TOKEN_KEYWORD_DATA,
TOKEN_KEYWORD_SECTION,
TOKEN_PROGRAM_ID,
TOKEN_WORKING_STORAGE,
TOKEN_PROCEDURE,
// Program Keywords
TOKEN_DISPLAY,
TOKEN_STOP,
TOKEN_RUN,
TOKEN_MOVE,
TOKEN_KEYWORD_TO,
TOKEN_PERFORM,
TOKEN_VARYING,
TOKEN_KEYWORD_FROM,
TOKEN_KEYWORD_BY,
TOKEN_UNTIL,
TOKEN_END_PERFORM,
TOKEN_IF,
TOKEN_END_IF,
TOKEN_SPACE,
TOKEN_KEYWORD_OCCURS,
TOKEN_KEYWORD_VALUE,
TOKEN_KEYWORD_COMPUTE,
TOKEN_KEYWORD_FUNCTION,
// Identifiers
TOKEN_IDENT,
// Data types
TOKEN_STRING,
TOKEN_INTEGER,
TOKEN_PICTURE,
TOKEN_ALPHANUMERIC,
TOKEN_NUMERIC,
TOKEN_SIGNED_NUMERIC,
TOKEN_IMPLIED_DECIMAL,
// https://ibmmainframes.com/about393.html
TOKEN_COMPUTATION_LEVEL_0,
TOKEN_COMPUTATION_LEVEL_1,
TOKEN_COMPUTATION_LEVEL_2,
TOKEN_COMPUTATION_LEVEL_3,
// Grammar
TOKEN_LEFT_PARENTHESIS,
TOKEN_RIGHT_PARENTHESIS,
TOKEN_DOT,
TOKEN_COMMENT,
// Operators
TOKEN_ADD,
TOKEN_SUB,
TOKEN_MULTIPLY,
TOKEN_DIVIDE,
TOKEN_EQUAL,
TOKEN_GREATER_THAN,
TOKEN_LESS_THAN,
TOKEN_EXPONENTIAL,
} token_t;