Скачиваний:
11
Добавлен:
01.05.2014
Размер:
2.31 Кб
Скачать

// File:        Tokens.h

#ifndef _TOKENS_H_INCLUDED_
#define _TOKENS_H_INCLUDED_
//-----------------------------------------------------------------------------

enum ENUM_TOKEN_TYPES
{
    TT_ID,
    TT_KEYWORD,
    TT_STRING,
    TT_CHAR,
    TT_INT,
    TT_REAL,
    TT_SPEC_SYMB, // delimiters, operations and so on 
    
    TT_EPS        // end of file...
};

//-----------------------------------------------------------------------------

enum ENUM_TOKENS
{
    TKN_PROGRAM,
    TKN_CONST,
    TKN_VAR,
    TKN_BEGIN,
    TKN_END,
    TKN_IF,
    TKN_THEN,
    TKN_ELSE,
    TKN_FOR,
    TKN_WHILE,
    TKN_DO,
    TKN_TO,
    TKN_OR,
    TKN_AND,
    TKN_NOT,
    TKN_TRUE,
    TKN_FALSE,

    TKN_INTEGER,
    TKN_REAL,
    TKN_BOOLEAN,
    TKN_CHAR,
    TKN_STRING,
    TKN_STACK,

    TKN_WRITE,
    TKN_WRITELN,
    TKN_READ,
    TKN_PUSH,
    TKN_POP,
    TKN_TOP,

    TKN_ID,

    TKN_LITER_INT,
    TKN_LITER_REAL,
    TKN_LITER_CHAR,
    TKN_LITER_STRING,
    
    TKN_REL_EQUAL,        // =
    TKN_REL_NOT_EQUAL,    // > or < or <= and so on...

    TKN_PLUS,             // + or -
    TKN_MULT,             // * ot /

    TKN_ASSIGN,           // :=
    TKN_BRACKET_OPEN,     // (
    TKN_BRACKET_CLOSE,    // )
    TKN_BRACKET_SQ_OPEN,  // [
    TKN_BRACKET_SQ_CLOSE, // ]
    TKN_SEMICOLON,        // ;
    TKN_COMMA,            // ,
    TKN_PERIOD,           // .
    TKN_COLON,            // :
    TKN_RANGE,            // ..
    
    TKN_EPS,

    TKN_KRINKIN,          // Дань уважения :)

    TKN_DEFAULT,          // некое значение по умолчанию (для класса CSymbol)
    
    TKN_QUANTITY
};

//-----------------------------------------------------

// Детализация некоторых токенов

enum ENUM_TOKEN_VAL
{
    VAL_NONE, 

    VAL_REL_G,  // Greater          >
    VAL_REL_GE, // Greater or equal >=
    VAL_REL_E,  // Equal            =
    VAL_REL_NE, // Not equal
    VAL_REL_L,  // Less             <
    VAL_REL_LE, // Less or equal    <=

    VAL_PLUS_P, // Plus  +
    VAL_PLUS_M, // Minus -

    VAL_MULT_M, // Multiplication *
    VAL_MULT_D  // Division       /
};

//-----------------------------------------------------------------------------
#endif

Соседние файлы в папке Курсовая работа2