style_token.h
1 /*
2 ** ClanLib SDK
3 ** Copyright (c) 1997-2015 The ClanLib Team
4 **
5 ** This software is provided 'as-is', without any express or implied
6 ** warranty. In no event will the authors be held liable for any damages
7 ** arising from the use of this software.
8 **
9 ** Permission is granted to anyone to use this software for any purpose,
10 ** including commercial applications, and to alter it and redistribute it
11 ** freely, subject to the following restrictions:
12 **
13 ** 1. The origin of this software must not be misrepresented; you must not
14 ** claim that you wrote the original software. If you use this software
15 ** in a product, an acknowledgment in the product documentation would be
16 ** appreciated but is not required.
17 ** 2. Altered source versions must be plainly marked as such, and must not be
18 ** misrepresented as being the original software.
19 ** 3. This notice may not be removed or altered from any source distribution.
20 **
21 ** Note: Some of the libraries ClanLib may link to may have additional
22 ** requirements or restrictions.
23 **
24 ** File Author(s):
25 **
26 ** Magnus Norddahl
27 */
28
29 #pragma once
30
31 #include <string>
32
33 namespace clan
34 {
36 enum class StyleTokenType
37 {
38 null,
39 ident,
40 atkeyword,
41 string,
42 invalid,
43 hash,
44 number,
45 percentage,
46 dimension,
47 uri,
48 unicode_range,
49 cdo,
50 cdc,
51 colon,
52 semi_colon,
53 curly_brace_begin,
54 curly_brace_end,
55 bracket_begin,
56 bracket_end,
57 square_bracket_begin,
58 square_bracket_end,
59 whitespace,
60 comment,
61 function,
62 includes,
63 dashmatch,
64 delim
65 };
66
68 class StyleToken
69 {
70 public:
72 StyleTokenType type = StyleTokenType::null;
73
75 std::string value;
76
78 std::string dimension;
79 };
80 }
clan::StyleTokenType::dashmatch
~=
clan
Definition: clanapp.h:35
clan::StyleTokenType::cdc
HTLM comment begin.
clan::StyleTokenType::square_bracket_end
[
clan::StyleToken::value
std::string value
Token value.
Definition: style_token.h:75
clan::StyleTokenType::atkeyword
Identifier.
clan::StyleTokenType::unicode_range
Url function.
clan::StyleTokenType::hash
Syntax error.
clan::StyleTokenType::whitespace
]
clan::StyleTokenType::dimension
Percentage number.
clan::StyleTokenType::colon
HTML comment end –>
clan::StyleTokenType::curly_brace_begin
;
clan::StyleTokenType::invalid
String.
clan::StyleTokenType::string
@ keyword
clan::StyleTokenType::number
Hash
clan::StyleTokenType::bracket_begin
}
clan::StyleTokenType::curly_brace_end
{
clan::StyleTokenType::bracket_end
(
clan::StyleTokenType
StyleTokenType
Token types recognized by the style tokenzier.
Definition: style_token.h:36
clan::StyleTokenType::ident
No more tokens.
clan::StyleTokenType::delim
|=
clan::StyleTokenType::null
clan::StyleToken
Style token.
Definition: style_token.h:68
clan::StyleTokenType::percentage
Number.
clan::StyleToken::type
StyleTokenType type
Token type.
Definition: style_token.h:72
clan::StyleTokenType::includes
Function name.
clan::StyleTokenType::square_bracket_begin
)
clan::StyleTokenType::uri
Number with dimension.
clan::StyleTokenType::cdo
Unicode range.
clan::StyleTokenType::semi_colon
:
clan::StyleToken::dimension
std::string dimension
Dimension for token value.
Definition: style_token.h:78
clan::StyleTokenType::comment
Whitespace.