mjplusplus  v0.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lexer::Token Class Reference

#include <token.hpp>

Public Types

enum  Token_type {
  TOKEN_EOF, TOKEN_INT_LIT, TOKEN_IDENT, TOKEN_IDENT_OR_KEYWORD,
  TOKEN_OPERATOR, TOKEN_ERROR, KEYWORD_ABSTRACT, KEYWORD_ASSERT,
  KEYWORD_BOOLEAN, KEYWORD_BREAK, KEYWORD_BYTE, KEYWORD_CASE,
  KEYWORD_CATCH, KEYWORD_CHAR, KEYWORD_CLASS, KEYWORD_CONST,
  KEYWORD_CONTINUE, KEYWORD_DEFAULT, KEYWORD_DOUBLE, KEYWORD_DO,
  KEYWORD_ELSE, KEYWORD_ENUM, KEYWORD_EXTENDS, KEYWORD_FALSE,
  KEYWORD_FINALLY, KEYWORD_FINAL, KEYWORD_FLOAT, KEYWORD_FOR,
  KEYWORD_GOTO, KEYWORD_IF, KEYWORD_IMPLEMENTS, KEYWORD_IMPORT,
  KEYWORD_INSTANCEOF, KEYWORD_INTERFACE, KEYWORD_INT, KEYWORD_LONG,
  KEYWORD_NATIVE, KEYWORD_NEW, KEYWORD_NULL, KEYWORD_PACKAGE,
  KEYWORD_PRIVATE, KEYWORD_PROTECTED, KEYWORD_PUBLIC, KEYWORD_RETURN,
  KEYWORD_SHORT, KEYWORD_STATIC, KEYWORD_STRICTFP, KEYWORD_SUPER,
  KEYWORD_SWITCH, KEYWORD_SYNCHRONIZED, KEYWORD_THIS, KEYWORD_THROWS,
  KEYWORD_THROW, KEYWORD_TRANSIENT, KEYWORD_TRUE, KEYWORD_TRY,
  KEYWORD_VOID, KEYWORD_VOLATILE, KEYWORD_WHILE, OPERATOR_NOTEQ,
  OPERATOR_NOT, OPERATOR_LPAREN, OPERATOR_RPAREN, OPERATOR_MULTEQ,
  OPERATOR_MULT, OPERATOR_PLUPLUS, OPERATOR_PLUSEQ, OPERATOR_PLUS,
  OPERATOR_COMMA, OPERATOR_MINUSEQ, OPERATOR_MINUSMINUS, OPERATOR_MINUS,
  OPERATOR_DOT, OPERATOR_SLASHEQ, OPERATOR_SLASH, OPERATOR_COLON,
  OPERATOR_SEMICOLON, OPERATOR_LTLTEQ, OPERATOR_LTLT, OPERATOR_LTEQ,
  OPERATOR_LT, OPERATOR_EQEQ, OPERATOR_EQ, OPERATOR_GTEQ,
  OPERATOR_GTGTEQ, OPERATOR_GTGTGTEQ, OPERATOR_GTGTGT, OPERATOR_GTGT,
  OPERATOR_GT, OPERATOR_QUESTION, OPERATOR_MODEQ, OPERATOR_MOD,
  OPERATOR_ANDEQ, OPERATOR_ANDAND, OPERATOR_AND, OPERATOR_LBRACKET,
  OPERATOR_RBRACKET, OPERATOR_XOREQ, OPERATOR_XOR, OPERATOR_LBRACE,
  OPERATOR_RBRACE, OPERATOR_NEG, OPERATOR_OREQ, OPERATOR_OROR,
  OPERATOR_OR
}
 

Public Member Functions

 Token (Token_type const &token_type, std::string const &string_value, source_position_t const &position)
 
 Token (Token_type const &token_type, std::string const *string_value, source_position_t const &position)
 
void print () const
 

Static Public Member Functions

static std::string const & getTableReference (std::string const &value)
 
static shptr
< semantic::symbol::Symbol > & 
getSymbol (std::string const &value)
 

Public Attributes

Token_type token_type
 
std::string const * string_value
 
source_position_t position
 

Static Public Attributes

static std::string const * type_to_ref []
 

Member Enumeration Documentation

enum containing the different token types

Enumerator
TOKEN_EOF 
TOKEN_INT_LIT 
TOKEN_IDENT 
TOKEN_IDENT_OR_KEYWORD 
TOKEN_OPERATOR 
TOKEN_ERROR 
KEYWORD_ABSTRACT 
KEYWORD_ASSERT 
KEYWORD_BOOLEAN 
KEYWORD_BREAK 
KEYWORD_BYTE 
KEYWORD_CASE 
KEYWORD_CATCH 
KEYWORD_CHAR 
KEYWORD_CLASS 
KEYWORD_CONST 
KEYWORD_CONTINUE 
KEYWORD_DEFAULT 
KEYWORD_DOUBLE 
KEYWORD_DO 
KEYWORD_ELSE 
KEYWORD_ENUM 
KEYWORD_EXTENDS 
KEYWORD_FALSE 
KEYWORD_FINALLY 
KEYWORD_FINAL 
KEYWORD_FLOAT 
KEYWORD_FOR 
KEYWORD_GOTO 
KEYWORD_IF 
KEYWORD_IMPLEMENTS 
KEYWORD_IMPORT 
KEYWORD_INSTANCEOF 
KEYWORD_INTERFACE 
KEYWORD_INT 
KEYWORD_LONG 
KEYWORD_NATIVE 
KEYWORD_NEW 
KEYWORD_NULL 
KEYWORD_PACKAGE 
KEYWORD_PRIVATE 
KEYWORD_PROTECTED 
KEYWORD_PUBLIC 
KEYWORD_RETURN 
KEYWORD_SHORT 
KEYWORD_STATIC 
KEYWORD_STRICTFP 
KEYWORD_SUPER 
KEYWORD_SWITCH 
KEYWORD_SYNCHRONIZED 
KEYWORD_THIS 
KEYWORD_THROWS 
KEYWORD_THROW 
KEYWORD_TRANSIENT 
KEYWORD_TRUE 
KEYWORD_TRY 
KEYWORD_VOID 
KEYWORD_VOLATILE 
KEYWORD_WHILE 
OPERATOR_NOTEQ 
OPERATOR_NOT 
OPERATOR_LPAREN 
OPERATOR_RPAREN 
OPERATOR_MULTEQ 
OPERATOR_MULT 
OPERATOR_PLUPLUS 
OPERATOR_PLUSEQ 
OPERATOR_PLUS 
OPERATOR_COMMA 
OPERATOR_MINUSEQ 
OPERATOR_MINUSMINUS 
OPERATOR_MINUS 
OPERATOR_DOT 
OPERATOR_SLASHEQ 
OPERATOR_SLASH 
OPERATOR_COLON 
OPERATOR_SEMICOLON 
OPERATOR_LTLTEQ 
OPERATOR_LTLT 
OPERATOR_LTEQ 
OPERATOR_LT 
OPERATOR_EQEQ 
OPERATOR_EQ 
OPERATOR_GTEQ 
OPERATOR_GTGTEQ 
OPERATOR_GTGTGTEQ 
OPERATOR_GTGTGT 
OPERATOR_GTGT 
OPERATOR_GT 
OPERATOR_QUESTION 
OPERATOR_MODEQ 
OPERATOR_MOD 
OPERATOR_ANDEQ 
OPERATOR_ANDAND 
OPERATOR_AND 
OPERATOR_LBRACKET 
OPERATOR_RBRACKET 
OPERATOR_XOREQ 
OPERATOR_XOR 
OPERATOR_LBRACE 
OPERATOR_RBRACE 
OPERATOR_NEG 
OPERATOR_OREQ 
OPERATOR_OROR 
OPERATOR_OR 

Constructor & Destructor Documentation

lexer::Token::Token ( Token_type const &  token_type,
std::string const &  string_value,
source_position_t const &  position 
)

construct Token and insert string_value into stringTable

lexer::Token::Token ( Token_type const &  token_type,
std::string const *  string_value,
source_position_t const &  position 
)

constructor to skip lookup of string_value in stringTable. string_value MUST BE in stringTable already

Member Function Documentation

shptr< semantic::symbol::Symbol > & lexer::Token::getSymbol ( std::string const &  value)
static
std::string const & lexer::Token::getTableReference ( std::string const &  value)
static
void lexer::Token::print ( ) const

prints a string representation of this token

Member Data Documentation

source_position_t lexer::Token::position

position of current token in source file (line, column)

std::string const* lexer::Token::string_value

this token's string value

Token_type lexer::Token::token_type

this token's type

std::string const * lexer::Token::type_to_ref
static

lookup table from token type to entry in stringtable used to prepopulate stringtable with allowed keywords and operators


The documentation for this class was generated from the following files: