summaryrefslogtreecommitdiff
path: root/support/highlight/src/core/enums.h
blob: 0b5609dc0d55e03cb315269c1b72d434ac9bf1a7 (plain)
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

/*
This file is part of Highlight.

Highlight is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Highlight is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Highlight.  If not, see <http://www.gnu.org/licenses/>.
*/


#ifndef ENUMS_H
#define ENUMS_H

namespace highlight
{

	/** states which may occour during input file parsing
	    TODO Clean up!
	*/
	enum State
	{
		STANDARD=0,
		STRING,
		NUMBER,
		SL_COMMENT,
		ML_COMMENT,
		ESC_CHAR,
		DIRECTIVE,
		DIRECTIVE_STRING,
		LINENUMBER,
		SYMBOL,

		// don't use constants > 10 as array indices!
		KEYWORD,
		STRING_END,
		NUMBER_END,
		SL_COMMENT_END,
		ML_COMMENT_END,
		ESC_CHAR_END,
		DIRECTIVE_END,
		SYMBOL_END,
		KEYWORD_END,
		IDENTIFIER_BEGIN,
		IDENTIFIER_END,
		EMBEDDED_CODE_BEGIN,
		EMBEDDED_CODE_END,
		EMBEDDED_PERL_HACK,

		_UNKNOWN=100,
		_EOL,
		_EOF,
		_WS
	} ;

	/** Parser return values*/
	enum ParseError
	{
		PARSE_OK,
		BAD_INPUT=1,
		BAD_OUTPUT=2,
		BAD_STYLE=4,
		BAD_BINARY=8
	};

	/** line wrapping modes*/
	enum WrapMode
	{
		WRAP_DISABLED,
		WRAP_SIMPLE,
		WRAP_DEFAULT
	};

	/** language definition loading results*/
	enum LoadResult
	{
		LOAD_FAILED,
		LOAD_FAILED_REGEX,
		LOAD_NEW,
		LOAD_NONE
	};

	/** output formats */
	enum OutputType
	{
		HTML,
		XHTML,
		TEX,
		LATEX,
		RTF,
		XML,
		ANSI,
		XTERM256,
		HTML32,
		SVG,
		BBCODE
	};

}

#endif