This repository has been archived on 2026-05-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
University-Basics-of-Progra…/Exercise 4/Lexer.h
T
2023-06-06 15:30:02 +02:00

32 lines
594 B
C

/* symbols */
#define _LETTER_ 1
#define _DIGIT_ 2
#define _OPERATOR_ 3
#define _PUNCTUATION_ 4
#define _END_OF_LINE_ 5
#define _UNKNOWN_ 10
/* state */
#define _START_ 100
#define _GET_NEXT_CHARACTER_ 110
#define _READ_IDENTIFIER_ 120
#define _READ_NUM_LIT_ 130
#define _READ_OPERATOR_ 140
#define _READ_PUNCTUATION_ 150
#define _STOP_ 999
#define _ERROR_ 1000
// lexer struct
struct Lexer_s {
int state;
char* source_code;
char** current_pos;
};
// typedef
typedef struct Lexer_s Lexer_t;
// methods
void init_Lexer(Lexer_t*, char*);
void run_Lexer(Lexer_t*);