-
Notifications
You must be signed in to change notification settings - Fork 0
/
Token.h
137 lines (83 loc) · 1.6 KB
/
Token.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#ifndef Token_h
#define Token_h
#include <string>
using std::wstring;
enum Token_Type ///there is 6 types of tokens
{
GENERIC = 0, CHARACTER, START_TAG, END_TAG, COMMENT, DOCTYPE, DOCTYPE_PUBLIC, DOCTYPE_SYSTEM
};
class Token //this is base class for all tokens
{
public:
virtual Token_Type getType()
{
return GENERIC;
}
};
class CharacterToken : public Token //
{
public:
wchar_t character; //skladowa moze byc publiczna, bo niez zalezy zeby Token byl
//chermetycznym typem danych. bedzie przenosil dane z Tokenizer do Parser
CharacterToken() : character(0)
{}
virtual Token_Type getType()
{
return CHARACTER;
}
};
class StartTagToken : public Token
{
public:
wstring tagName; //wstring poniewaz te znaki beda stopniowo dodawane
virtual Token_Type getType()
{
return START_TAG;
}
};
class EndTagToken : public Token
{
public:
wstring tagName; //wstring poniewaz te znaki beda stopniowo dodawane
virtual Token_Type getType()
{
return END_TAG;
}
};
class CommentToken : public Token
{
public:
wstring comment;
virtual Token_Type getType()
{
return COMMENT;
}
};
class DoctypeToken : public Token
{
public:
wstring doctype;
virtual Token_Type getType()
{
return DOCTYPE;
}
};
class DoctypePublicToken : public Token
{
public:
wstring doctypePublic;
virtual Token_Type getType()
{
return DOCTYPE_PUBLIC;
}
};
class DoctypeSystemToken : public Token
{
public:
wstring doctypeSystem;
virtual Token_Type getType()
{
return DOCTYPE_SYSTEM;
}
};
#endif // TOKEN_H_INCLUDED