-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathparser_types.html
More file actions
186 lines (177 loc) · 8.84 KB
/
parser_types.html
File metadata and controls
186 lines (177 loc) · 8.84 KB
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-C2YXLNQ21C"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-C2YXLNQ21C');
</script>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>libtcod documentation | Standard types</title>
<script type="text/javascript" src="../js/doctcod.js"></script>
<link href="../css/style.css" rel="stylesheet" type="text/css">
</head>
<link type="text/css" rel="stylesheet" href="../css/shCore.css">
</link>
<link type="text/css" rel="stylesheet" href="../css/shThemeDefault.css">
</link>
<script language="javascript" src="../js/shCore.js"></script>
<script language="javascript" src="../js/shBrushBash.js"></script>
<body>
<div class="header">
<p><span class="title1">libtcod</span><span class="title2">documentation</span></p>
</div>
<div class="breadcrumb">
<div class="breadcrumbtext">
<p>
you are here: <a onclick="link('../index2.html')">Index</a> > <a onclick="link('parser.html')">10. File
parser</a> > <a onclick="link('parser_types.html')">10.4. Standard types</a><br>
<a class="prev" onclick="link('parser_run.html')">10.3. Running the parser</a>
</p>
</div>
</div>
<div class="filter"><input type="checkbox" id="chk_c" name="chk_c" onchange="enable('c',this.checked)"
checked='checked'><label for='chk_c'> C </label><input type="checkbox" id="chk_cpp" name="chk_cpp"
onchange="enable('cpp',this.checked)" checked='checked'><label for='chk_cpp'> C++ </label><input type="checkbox"
id="chk_py" name="chk_py" onchange="enable('py',this.checked)" checked='checked'><label for='chk_py'> Py
</label><input type="checkbox" id="chk_lua" name="chk_lua" onchange="enable('lua',this.checked)"
disabled='disabled'><label class='disabled' for='chk_lua'> Lua </label><input type="checkbox" id="chk_cs"
name="chk_cs" onchange="enable('cs',this.checked)" disabled='disabled'><label class='disabled' for='chk_cs'> C#
</label></div>
<div class="main">
<div class="maintext">
<h1>10.4. Standard types</h1>
<div id="toc">
<ul>
</ul>
</div>
<a name="0"></a>
<p>The parser can parse natively several data types. It stores them in a generic union :<br /> </p>
<div class="code">
<p class="c"><span class="code-keyword">typedef</span><span class="code-keyword"> struct</span><span
class="code-symbol"> {</span><span class="code-keyword"><br /> int</span>
nb_rolls<span class="code-symbol">;</span><span class="code-keyword"><br /> int</span>
nb_faces<span class="code-symbol">;</span><span
class="code-keyword"><br /> float</span> multiplier<span
class="code-symbol">;</span><span class="code-keyword"><br /> float</span>
addsub<span class="code-symbol">;</span><span class="code-symbol"><br />}</span><span class="code-tcod">
TCOD_dice_t</span><span class="code-symbol">;</span><span
class="code-keyword"><br /> typedef</span><span class="code-keyword">
union</span><span class="code-symbol"> {</span><span
class="code-keyword"><br /> bool</span> b<span class="code-symbol">;</span><span
class="code-keyword"><br /> char</span> c<span class="code-symbol">;</span><span
class="code-keyword"><br /> int32_t</span> i<span class="code-symbol">;</span><span
class="code-keyword"><br /> float</span> f<span class="code-symbol">;</span><span
class="code-keyword"><br /> char</span><span class="code-symbol"> *</span>s<span
class="code-symbol">;</span><span class="code-tcod"><br /> TCOD_color_t</span>
col<span class="code-symbol">;</span><span class="code-tcod"><br /> TCOD_dice_t</span>
dice<span class="code-symbol">;</span><span class="code-tcod"><br /> TCOD_list_t</span>
list<span class="code-symbol">;</span><span
class="code-keyword"><br /> void</span><span class="code-symbol"> *</span>custom<span
class="code-symbol">;</span><span class="code-symbol"><br />}</span><span class="code-tcod">
TCOD_value_t</span><span class="code-symbol">;</span></p>
</div>
<a name="1"></a>
<p>Possible types are defined by the TCOD_value_type_t enumeration :<br />For Python, remove TCOD_ :
libtcod.TYPE_BOOL<br />
<table class="param">
<tbody>
<tr>
<th>TCOD_value_type_t</th>
<th>Value in file</th>
<th>TCOD_value_t</th>
</tr>
<tr>
<td>TCOD_TYPE_BOOL</td>
<td>true<br>false</td>
<td>value.b == true/false</td>
</tr>
<tr>
<td>TCOD_TYPE_CHAR</td>
<td>decimal notation : 0 .. 255<br>
hexadecimal notation : 0x00 .. 0xff <br>
char notation : 'a' ';' ...<br>
Special characters :<br>
'\n' : carriage return (ascii 13)<br>
'\t' : tabulation (ascii 9)<br>
'\r' : line feed (ascii 10)<br>
'\\' : antislash (ascii 92)<br>
'\"' : double-quote (ascii 34)<br>
'\'' : simple quote (ascii 39)<br>
'\xHH' : hexadecimal value, same as 0xHH, HH between 0 and FF<br>
'\NNN' : octal value, NNN between 0 and 377<br>
</td>
<td>value.c == The corresponding ascii code</td>
</tr>
<tr>
<td>TCOD_TYPE_INT</td>
<td>decimal notation : -2147483648 .. 2147483647<br>hexadecimal notation : 0x0 .. 0xFFFFFFFF</td>
<td>value.i == the integer value</td>
</tr>
<tr>
<td>TCOD_TYPE_FLOAT</td>
<td>Any format parsable by atof. Examples:<br>3.14159<br>1.25E-3</td>
<td>value.f == the float value</td>
</tr>
<tr>
<td>TCOD_TYPE_STRING</td>
<td>A double-quote delimited string :<br>"This is a string"<br>Support the same special characters as
TCOD_TYPE_CHAR.</td>
<td>value.s == the corresponding string.<br>Warning ! If you want to store this string, you have to
duplicate it (with strdup) as it will be overwritten by the parser</td>
</tr>
<tr>
<td>TCOD_TYPE_COLOR</td>
<td>decimal notation : "16,32,64"<br>hexadecimal notation : "#102040"</td>
<td>value.col == the color.</td>
</tr>
<tr>
<td>TCOD_TYPE_DICE</td>
<td>[multiplier (x|*)] nb_rolls (d|D) nb_faces [(+|-) addsub]
:<br>"3d6"<br>"3D6+2"<br>"0.5x3d6-2"<br>"2*3d8"</td>
<td>value.dice == the dice components</td>
</tr>
<tr>
<td>TCOD_TYPE_VALUELISTxx</td>
<td>Same as TCOD_TYPE_STRING</td>
<td>value.s == the string value from the value list</td>
</tr>
<tr>
<td>TCOD_TYPE_LIST</td>
<td>[ <value1>,<value2>,... ]</td>
<td>value.list == the TCOD_list_t containing the elements</td>
</tr>
</tbody>
</table><br /><br />To define a list type, use the appropriate function (TCODParserStruct::addListProperty /
TCOD_parser_add_list_property) and specify the type of the elements in the list. Lists of list are not
supported.<br /> </p>
<div class="code"></div>
</div>
</div>
<div class="footer">
<div class="footertext">
<p>libtcod 1.6.4, © 2008, 2009, 2010, 2012, 2017 Jice, Mingos & rmtew<br>
This file has been generated by doctcod.</p>
<p>
<table width='100%'>
<tr>
<td width="33%"><a href="https://github.com/libtcod/libtcod">libtcod website</a></td>
<td width="33%"><a href="https://www.reddit.com/r/roguelikedev">libtcod on /r/roguelikedev</a></td>
<td width="33%">libtcod tutorials [ <a
href="http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod">Python</a> | <a
href="http://www.roguebasin.com/index.php?title=Complete_roguelike_tutorial_using_C%2B%2B_and_libtcod_-_part_1:_setting_up">C++</a> ]
</td>
</tr>
</table>
</p>
</div>
</div>
</body>
<script>
initFilter();
SyntaxHighlighter.all();
</script>
</html>