123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #ifndef TOKENTYPE_H
- #define TOKENTYPE_H
- #include <iostream>
- #include <string>
- using namespace std;
- class TokenTypeClass
- {
- public:
- TokenTypeClass(string name, int level) : typeName(name), level(level) {};
- TokenTypeClass(string name) : typeName(name), level(-1) {};
- virtual ~TokenTypeClass();
- string getName() const;
- int getLevel() const;
-
- bool operator==(const TokenTypeClass& t) const;
- bool operator!=(const TokenTypeClass& t) const;
- private:
- string typeName;
- int level;
- };
- typedef const TokenTypeClass& TokenType;
- std::ostream& operator<<(std::ostream& os, const TokenType& c);
- namespace Tokens
- {
- extern const TokenTypeClass FLOAT;
- extern const TokenTypeClass TRUE;
- extern const TokenTypeClass FALSE;
- extern const TokenTypeClass TNULL;
- extern const TokenTypeClass TEXT;
- extern const TokenTypeClass LABEL;
- extern const TokenTypeClass VAR;
- extern const TokenTypeClass GLOBAL;
-
- extern const TokenTypeClass INC;
- extern const TokenTypeClass DEC;
- extern const TokenTypeClass INVERT;
- extern const TokenTypeClass BIT_INVERT;
- extern const TokenTypeClass MUL;
- extern const TokenTypeClass DIV;
- extern const TokenTypeClass MOD;
- extern const TokenTypeClass UNARY_ADD;
- extern const TokenTypeClass UNARY_SUB;
- extern const TokenTypeClass ADD;
- extern const TokenTypeClass SUB;
- extern const TokenTypeClass LEFT_SHIFT;
- extern const TokenTypeClass RIGHT_SHIFT;
- extern const TokenTypeClass LESS;
- extern const TokenTypeClass LESS_EQUAL;
- extern const TokenTypeClass GREATER;
- extern const TokenTypeClass GREATER_EQUAL;
- extern const TokenTypeClass EQUAL;
- extern const TokenTypeClass NOT_EQUAL;
- extern const TokenTypeClass BIT_AND;
- extern const TokenTypeClass BIT_XOR;
- extern const TokenTypeClass BIT_OR;
- extern const TokenTypeClass AND;
- extern const TokenTypeClass OR;
- extern const TokenTypeClass SET;
- extern const TokenTypeClass ADD_SET;
- extern const TokenTypeClass SUB_SET;
- extern const TokenTypeClass MUL_SET;
- extern const TokenTypeClass DIV_SET;
- extern const TokenTypeClass MOD_SET;
- extern const TokenTypeClass LEFT_SHIFT_SET;
- extern const TokenTypeClass RIGHT_SHIFT_SET;
- extern const TokenTypeClass BIT_AND_SET;
- extern const TokenTypeClass BIT_XOR_SET;
- extern const TokenTypeClass BIT_OR_SET;
- extern const TokenTypeClass COMMA;
- extern const TokenTypeClass OPEN_BRACKET;
- extern const TokenTypeClass CLOSE_BRACKET;
- extern const TokenTypeClass OPEN_SQUARE_BRACKET;
- extern const TokenTypeClass CLOSE_SQUARE_BRACKET;
- extern const TokenTypeClass OPEN_CURVED_BRACKET;
- extern const TokenTypeClass CLOSE_CURVED_BRACKET;
- extern const TokenTypeClass SEMICOLON;
-
- extern const TokenTypeClass IF;
- extern const TokenTypeClass ELSE_IF;
- extern const TokenTypeClass ELSE;
- extern const TokenTypeClass FOR;
- extern const TokenTypeClass WHILE;
- extern const TokenTypeClass FUNCTION;
- extern const TokenTypeClass BREAK;
- extern const TokenTypeClass CONTINUE;
- extern const TokenTypeClass RETURN;
- extern const TokenTypeClass TRY;
- extern const TokenTypeClass CATCH;
- extern const TokenTypeClass END_OF_FILE;
- };
- #endif
|