23 lines
364 B
C
23 lines
364 B
C
|
|
#ifndef LEXER_H
|
||
|
|
#define LEXER_H
|
||
|
|
#include "token.h"
|
||
|
|
#include <stdbool.h>
|
||
|
|
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
int position;
|
||
|
|
int readPosition;
|
||
|
|
int lineNumber;
|
||
|
|
|
||
|
|
char currentChar;
|
||
|
|
char *source;
|
||
|
|
} Lexer;
|
||
|
|
|
||
|
|
Lexer initLexer(char *source);
|
||
|
|
void readChar(Lexer *lexer);
|
||
|
|
void skipWhitespace(Lexer *lexer);
|
||
|
|
Token nextToken(Lexer *lexer);
|
||
|
|
char *tokenToCStr(Token token);
|
||
|
|
|
||
|
|
#endif // !LEXER_H
|