Tokenizing input
This commit is contained in:
18
Lexer.h
18
Lexer.h
@@ -2,16 +2,28 @@
|
||||
#define LEXER_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
class Token;
|
||||
#include "Token.h"
|
||||
|
||||
class Lexer {
|
||||
private:
|
||||
std::string source;
|
||||
int currentIndex = 0;
|
||||
int currentLine = 0;
|
||||
|
||||
Token nextToken();
|
||||
Token matchEnd();
|
||||
Token matchNewLine();
|
||||
Token matchInvalid();
|
||||
Token matchSymbol(char symbol, Token::Kind kind);
|
||||
Token matchInteger();
|
||||
|
||||
bool isWhiteSpace(int index);
|
||||
bool isNewLine(int index);
|
||||
bool isDigit(int index);
|
||||
|
||||
public:
|
||||
Lexer(std::string source);
|
||||
std::vector<Token> tokens();
|
||||
std::vector<Token> getTokens();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user