webpage/lexer.h

44 lines
777 B
C
Raw Permalink Normal View History

2023-12-31 14:54:14 +01:00
#ifndef LEXER_H
#define LEXER_H
#include <stdio.h>
#include <stdlib.h>
2024-01-01 19:13:39 +01:00
#include <string.h>
#include "page.h"
2023-12-31 14:54:14 +01:00
2024-01-03 03:22:27 +01:00
// 46 enum
2023-12-31 14:54:14 +01:00
typedef enum TokenType {
2024-01-02 20:53:15 +01:00
UNDEFINED_TYPE,
DONT_CARE,
2024-01-04 19:36:30 +01:00
TITLE, END_TITLE,
2024-01-03 03:22:27 +01:00
TEXT, END_HTML,
2024-01-02 21:44:27 +01:00
BODY, END_BODY,
A, END_A,
2024-01-03 03:22:27 +01:00
IMG, END_IMG,
BLOCKQUOTE, END_BLOCKQUOTE,
CODE, END_CODE,
2024-01-04 19:58:12 +01:00
HR, BR, P, END_P,
2024-01-03 03:22:27 +01:00
PROGRESS, END_PROGRESS,
STRONG, B, I, EM,
END_STRONG, END_B, END_I, END_EM,
UL, OL, LI, END_UL, END_OL, END_LI,
TABLE, END_TABLE, THEAD,
END_THEAD, TBODY, END_TBODY,
TR, TH, END_TR, END_TH,
2023-12-31 14:54:14 +01:00
H1, H2, H3, H4, H5, H6,
2024-01-04 19:36:30 +01:00
END_H1, END_H2, END_H3, END_H4, END_H5, END_H6,
2023-12-31 14:54:14 +01:00
} TokenType;
typedef struct Token {
TokenType type;
char* value;
2024-01-02 20:53:15 +01:00
int len;
2023-12-31 14:54:14 +01:00
} Token;
Token* nexttoken(void);
void printtoken(Token* token);
#endif // LEXER_H