12345678910111213141516171819202122232425262728293031323334353637 |
- #ifndef LEXER_H
- #define LEXER_H
-
- typedef enum lexer_token_class
- {
- LEXER_TOKEN_WHITESPACE,
- LEXER_TOKEN_IDENTIFIER,
- LEXER_TOKEN_KEYWORD,
- LEXER_TOKEN_OPERATOR,
- LEXER_TOKEN_SEPARATOR,
-
- LEXER_TOKEN_INTEGER,
- LEXER_TOKEN_STRING,
-
- LEXER_TOKEN_FUNCTION_START,
- LEXER_TOKEN_FUNCTION_END,
- LEXER_TOKEN_EXPRESSION_START,
- LEXER_TOKEN_EXPRESSION_END
- } lexer_token_class;
-
- typedef struct lexer_token
- {
- lexer_token_class tokenClass;
- char* str;
- size_t len;
- } lexer_token;
-
- typedef struct lexer_tokens
- {
- lexer_token* pairs;
- size_t length;
- size_t allocd;
- } lexer_tokens;
-
- lexer_tokens* lexer_analyze(char* str);
-
- #endif
|