-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtoken.h
executable file
·86 lines (73 loc) · 1.54 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
/*Copyright 2001
*
* token.h
*
* Author: Gregory Ford [email protected]
* RTF token parser based on:
* rtf2html by Dmitry Porapov <[email protected]>,
* based on earlier work of Chuck Shotton.
* distributed under BSD-style license
* RTF token lists and hashing algorithm based on
* RTF Tools, Release 1.10
* 6 April 1994
* Paul DuBois [email protected]
*
* Copying permitted under GNU licence (see COPYING)
*/
// token.h: interface for the Token class.
//
//////////////////////////////////////////////////////////////////////
typedef enum tag_TokenType {
invalidToken,
charToken,
groupToken,
controlToken
} TokenType;
class Token
{
public:
bool destination;
virtual TokenType getType()=0;
Token();
virtual ~Token();
string text; // store the token text in case it is needed
};
typedef enum GroupType { startGroup, endGroup };
class GroupToken : public Token
{
public:
GroupToken( GroupType t );
TokenType getType();
GroupToken();
virtual ~GroupToken();
GroupType group;
};
class ControlToken : public Token
{
public:
int rtfMinor;
int rtfMajor;
TokenType getType();
ControlToken();
virtual ~ControlToken();
bool hasArg;
int arg; // arg value if present
};
class CharToken : public Token
{
public:
CharToken( char ch );
TokenType getType();
CharToken();
virtual ~CharToken();
char ch;
};
class InvalidToken : public Token
{
public:
string errorMessage;
InvalidToken( const char *errorMessage );
TokenType getType();
InvalidToken();
virtual ~InvalidToken();
};