GSC Interpreter
A Turing-complete interpreter developed for a compiler course
Loading...
Searching...
No Matches
tokenType.hpp File Reference
#include <string>
Include dependency graph for tokenType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  TokenType {
  LEFT_PAREN , RIGHT_PAREN , LEFT_BRACE , RIGHT_BRACE ,
  MINUS , PLUS , SEMICOLON , SLASH ,
  STAR , BANG , BANG_EQUAL , EQUAL ,
  EQUAL_EQUAL , GREATER , GREATER_EQUAL , LESS ,
  LESS_EQUAL , IDENTIFIER , STRING , NUMBER ,
  AND , OR , IF , ELSE ,
  TRUE , FALSE , FOR , WHILE ,
  NIL , PRINT , VAR , END_OF_FILE
}
 Enum representing the different types of tokens in the GSC language. More...
 

Functions

std::string toString (TokenType type)
 

Variables

static const std::string tokenStrings []
 

Enumeration Type Documentation

◆ TokenType

enum TokenType

Enum representing the different types of tokens in the GSC language.

This enum is used to categorize tokens during lexical analysis.

Enumerator
LEFT_PAREN 
RIGHT_PAREN 
LEFT_BRACE 
RIGHT_BRACE 
MINUS 
PLUS 
SEMICOLON 
SLASH 
STAR 
BANG 
BANG_EQUAL 
EQUAL 
EQUAL_EQUAL 
GREATER 
GREATER_EQUAL 
LESS 
LESS_EQUAL 
IDENTIFIER 
STRING 
NUMBER 
AND 
OR 
IF 
ELSE 
TRUE 
FALSE 
FOR 
WHILE 
NIL 
PRINT 
VAR 
END_OF_FILE 

Definition at line 10 of file tokenType.hpp.

10 {
11 // Single-character tokens.
16 MINUS,
17 PLUS,
19 SLASH,
20 STAR,
21
22 // One or two character tokens.
23 BANG,
25 EQUAL,
27 GREATER,
29 LESS,
31
32 // Literals.
34 STRING,
35 NUMBER,
36
37 // Keywords.
38 AND,
39 OR,
40 IF,
41 ELSE,
42 TRUE,
43 FALSE,
44 FOR,
45 WHILE,
46 NIL,
47 PRINT,
48 VAR,
49
51};
@ NUMBER
Definition tokenType.hpp:35
@ BANG
Definition tokenType.hpp:23
@ IF
Definition tokenType.hpp:40
@ GREATER
Definition tokenType.hpp:27
@ WHILE
Definition tokenType.hpp:45
@ GREATER_EQUAL
Definition tokenType.hpp:28
@ SEMICOLON
Definition tokenType.hpp:18
@ EQUAL_EQUAL
Definition tokenType.hpp:26
@ EQUAL
Definition tokenType.hpp:25
@ NIL
Definition tokenType.hpp:46
@ RIGHT_BRACE
Definition tokenType.hpp:15
@ BANG_EQUAL
Definition tokenType.hpp:24
@ END_OF_FILE
Definition tokenType.hpp:50
@ IDENTIFIER
Definition tokenType.hpp:33
@ AND
Definition tokenType.hpp:38
@ PLUS
Definition tokenType.hpp:17
@ ELSE
Definition tokenType.hpp:41
@ LESS
Definition tokenType.hpp:29
@ OR
Definition tokenType.hpp:39
@ STAR
Definition tokenType.hpp:20
@ FALSE
Definition tokenType.hpp:43
@ FOR
Definition tokenType.hpp:44
@ TRUE
Definition tokenType.hpp:42
@ SLASH
Definition tokenType.hpp:19
@ LEFT_BRACE
Definition tokenType.hpp:14
@ LEFT_PAREN
Definition tokenType.hpp:12
@ PRINT
Definition tokenType.hpp:47
@ LESS_EQUAL
Definition tokenType.hpp:30
@ STRING
Definition tokenType.hpp:34
@ RIGHT_PAREN
Definition tokenType.hpp:13
@ MINUS
Definition tokenType.hpp:16
@ VAR
Definition tokenType.hpp:48

Function Documentation

◆ toString()

std::string toString ( TokenType  type)

Definition at line 3 of file tokenType.cpp.

3 {
4 return tokenStrings[static_cast<int>(tokenType)];
5}
static const std::string tokenStrings[]
Definition tokenType.hpp:53

Variable Documentation

◆ tokenStrings

const std::string tokenStrings[]
static
Initial value:
= {
"LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACE", "RIGHT_BRACE", "MINUS",
"PLUS", "SEMICOLON", "SLASH", "STAR", "BANG",
"BANG_EQUAL", "EQUAL", "EQUAL_EQUAL", "GREATER", "GREATER_EQUAL",
"LESS", "LESS_EQUAL", "IDENTIFIER", "STRING", "NUMBER",
"AND", "OR", "IF", "ELSE", "TRUE",
"FALSE", "FOR", "WHILE", "NIL", "PRINT",
"VAR", "END_OF_FILE"}

Definition at line 53 of file tokenType.hpp.

53 {
54 "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACE", "RIGHT_BRACE", "MINUS",
55 "PLUS", "SEMICOLON", "SLASH", "STAR", "BANG",
56 "BANG_EQUAL", "EQUAL", "EQUAL_EQUAL", "GREATER", "GREATER_EQUAL",
57 "LESS", "LESS_EQUAL", "IDENTIFIER", "STRING", "NUMBER",
58 "AND", "OR", "IF", "ELSE", "TRUE",
59 "FALSE", "FOR", "WHILE", "NIL", "PRINT",
60 "VAR", "END_OF_FILE"};