blob: 9ceeef12ca8c6c754319b8f6e7d2e6d65c819186 [file] [log] [blame]
NightStrike4bb4fce2009-10-10 12:22:24 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<title>libmangle: src/m_token.c File Reference</title>
6<link href="tabs.css" rel="stylesheet" type="text/css"/>
7<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8</head>
9<body>
10<!-- Generated by Doxygen 1.6.1 -->
11<div class="navigation" id="top">
12 <div class="tabs">
13 <ul>
14 <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
15 <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
16 <li class="current"><a href="files.html"><span>Files</span></a></li>
17 </ul>
18 </div>
19 <div class="tabs">
20 <ul>
21 <li><a href="files.html"><span>File&nbsp;List</span></a></li>
22 <li><a href="globals.html"><span>Globals</span></a></li>
23 </ul>
24 </div>
25</div>
26<div class="contents">
27<h1>src/m_token.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br/>
28<code>#include &lt;stdlib.h&gt;</code><br/>
29<code>#include &lt;malloc.h&gt;</code><br/>
30<code>#include &lt;string.h&gt;</code><br/>
31<code>#include &lt;inttypes.h&gt;</code><br/>
32<code>#include &lt;stdint.h&gt;</code><br/>
33<code>#include &quot;<a class="el" href="m__token_8h_source.html">m_token.h</a>&quot;</code><br/>
34<code>#include &quot;<a class="el" href="m__ms_8h_source.html">m_ms.h</a>&quot;</code><br/>
35<table border="0" cellpadding="0" cellspacing="0">
36<tr><td colspan="2"><h2>Defines</h2></td></tr>
37<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a7defdcab1465fcfa706d66f1572a08d5">MY_LL</a>&nbsp;&nbsp;&nbsp;&quot;ll&quot;</td></tr>
38<tr><td colspan="2"><h2>Functions</h2></td></tr>
39<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#aebd5b8b36fc38cc0e8457ff47e796113">generate_gc</a> (void)</td></tr>
40<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a5d89434e78fb873998f2844e30e0dcb1">release_gc</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc)</td></tr>
41<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#ace5f8b4a48ceee9d5b2610ba9ad75a4c">gen_tok</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, enum <a class="el" href="m__token_8h.html#a50bee8455836804dd921dd275b0bcebd">eMToken</a> kind, enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a> subkind, size_t addend)</td></tr>
42<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#ace0fb94536f164fb470e66b81a005a44">dump_tok</a> (FILE *fp, <a class="el" href="unionu_m_token.html">uMToken</a> *p)</td></tr>
43<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a50ef074a3d1cf22f842abd4df7081743">chain_tok</a> (<a class="el" href="unionu_m_token.html">uMToken</a> *l, <a class="el" href="unionu_m_token.html">uMToken</a> *add)</td></tr>
44<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a3b64dc961fdbac6f6908ec924e3ee6e1">gen_value</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a> skind, uint64_t val, int is_signed, int size)</td></tr>
45<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a9a309ae8be7bf65c087195c156fbf9f8">gen_name</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a> skind, const char *name)</td></tr>
46<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a0a622c481e414c967b27eaa3edbc6e25">gen_dim</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a> skind, uint64_t val, const char *non_tt_param, int fSigned, int fNegate)</td></tr>
47<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a179397b41a7f31d461ddf8bb40a4f33a">gen_unary</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a> skind, <a class="el" href="unionu_m_token.html">uMToken</a> *un)</td></tr>
48<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a6615855ec116031800e49e543031d34e">gen_binary</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a> skind, <a class="el" href="unionu_m_token.html">uMToken</a> *l, <a class="el" href="unionu_m_token.html">uMToken</a> *r)</td></tr>
49<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a938de7206a46fd57b9240cc2744a43a2">sprint_decl</a> (<a class="el" href="unionu_m_token.html">uMToken</a> *r)</td></tr>
50<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="m__token_8c.html#a0d4a763ceb4c3bd20db29d440ea604fb">print_decl</a> (FILE *fp, <a class="el" href="unionu_m_token.html">uMToken</a> *r)</td></tr>
51</table>
52<hr/><h2>Define Documentation</h2>
53<a class="anchor" id="a7defdcab1465fcfa706d66f1572a08d5"></a><!-- doxytag: member="m_token.c::MY_LL" ref="a7defdcab1465fcfa706d66f1572a08d5" args="" -->
54<div class="memitem">
55<div class="memproto">
56 <table class="memname">
57 <tr>
58 <td class="memname">#define MY_LL&nbsp;&nbsp;&nbsp;&quot;ll&quot;</td>
59 </tr>
60 </table>
61</div>
62<div class="memdoc">
63
64</div>
65</div>
66<hr/><h2>Function Documentation</h2>
67<a class="anchor" id="a50ef074a3d1cf22f842abd4df7081743"></a><!-- doxytag: member="m_token.c::chain_tok" ref="a50ef074a3d1cf22f842abd4df7081743" args="(uMToken *l, uMToken *add)" -->
68<div class="memitem">
69<div class="memproto">
70 <table class="memname">
71 <tr>
72 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* chain_tok </td>
73 <td>(</td>
74 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
75 <td class="paramname"> <em>l</em>, </td>
76 </tr>
77 <tr>
78 <td class="paramkey"></td>
79 <td></td>
80 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
81 <td class="paramname"> <em>add</em></td><td>&nbsp;</td>
82 </tr>
83 <tr>
84 <td></td>
85 <td>)</td>
86 <td></td><td></td><td></td>
87 </tr>
88 </table>
89</div>
90<div class="memdoc">
91<p>Chains uMTokens together. </p>
92<dl><dt><b>Parameters:</b></dt><dd>
93 <table border="0" cellspacing="2" cellpadding="0">
94 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>l</em>&nbsp;</td><td>uMtoken chain to link up with. </td></tr>
95 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>add</em>&nbsp;</td><td>uMtoken to add to chain. </td></tr>
96 </table>
97 </dd>
98</dl>
99<dl class="return"><dt><b>Returns:</b></dt><dd><em>l</em> unchanged </dd></dl>
100
101</div>
102</div>
103<a class="anchor" id="ace0fb94536f164fb470e66b81a005a44"></a><!-- doxytag: member="m_token.c::dump_tok" ref="ace0fb94536f164fb470e66b81a005a44" args="(FILE *fp, uMToken *p)" -->
104<div class="memitem">
105<div class="memproto">
106 <table class="memname">
107 <tr>
108 <td class="memname">void dump_tok </td>
109 <td>(</td>
110 <td class="paramtype">FILE *&nbsp;</td>
111 <td class="paramname"> <em>fp</em>, </td>
112 </tr>
113 <tr>
114 <td class="paramkey"></td>
115 <td></td>
116 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
117 <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
118 </tr>
119 <tr>
120 <td></td>
121 <td>)</td>
122 <td></td><td></td><td></td>
123 </tr>
124 </table>
125</div>
126<div class="memdoc">
127<p>Dumps <a class="el" href="unionu_m_token.html">uMToken</a> to a file descriptor for debugging. </p>
128<dl><dt><b>Parameters:</b></dt><dd>
129 <table border="0" cellspacing="2" cellpadding="0">
130 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fp</em>&nbsp;</td><td>File descriptor to print the token to. </td></tr>
131 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>p</em>&nbsp;</td><td><a class="el" href="unionu_m_token.html">uMToken</a> chain to print. </td></tr>
132 </table>
133 </dd>
134</dl>
135
136</div>
137</div>
138<a class="anchor" id="a6615855ec116031800e49e543031d34e"></a><!-- doxytag: member="m_token.c::gen_binary" ref="a6615855ec116031800e49e543031d34e" args="(sGcCtx *gc, enum eMSToken skind, uMToken *l, uMToken *r)" -->
139<div class="memitem">
140<div class="memproto">
141 <table class="memname">
142 <tr>
143 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* gen_binary </td>
144 <td>(</td>
145 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
146 <td class="paramname"> <em>gc</em>, </td>
147 </tr>
148 <tr>
149 <td class="paramkey"></td>
150 <td></td>
151 <td class="paramtype">enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a>&nbsp;</td>
152 <td class="paramname"> <em>skind</em>, </td>
153 </tr>
154 <tr>
155 <td class="paramkey"></td>
156 <td></td>
157 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
158 <td class="paramname"> <em>l</em>, </td>
159 </tr>
160 <tr>
161 <td class="paramkey"></td>
162 <td></td>
163 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
164 <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
165 </tr>
166 <tr>
167 <td></td>
168 <td>)</td>
169 <td></td><td></td><td></td>
170 </tr>
171 </table>
172</div>
173<div class="memdoc">
174<p>Generates a binary node token. </p>
175<dl><dt><b>Parameters:</b></dt><dd>
176 <table border="0" cellspacing="2" cellpadding="0">
177 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Pointer to garbage collection context. </td></tr>
178 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>skind</em>&nbsp;</td><td>Token subKind. </td></tr>
179 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>l</em>&nbsp;</td><td>Left node element. </td></tr>
180 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td>Right node element. </td></tr>
181 </table>
182 </dd>
183</dl>
184<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to binary token. </dd></dl>
185<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structs_m_token__binary.html">sMToken_binary</a> </dd></dl>
186
187</div>
188</div>
189<a class="anchor" id="a0a622c481e414c967b27eaa3edbc6e25"></a><!-- doxytag: member="m_token.c::gen_dim" ref="a0a622c481e414c967b27eaa3edbc6e25" args="(sGcCtx *gc, enum eMSToken skind, uint64_t val, const char *non_tt_param, int fSigned, int fNegate)" -->
190<div class="memitem">
191<div class="memproto">
192 <table class="memname">
193 <tr>
194 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* gen_dim </td>
195 <td>(</td>
196 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
197 <td class="paramname"> <em>gc</em>, </td>
198 </tr>
199 <tr>
200 <td class="paramkey"></td>
201 <td></td>
202 <td class="paramtype">enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a>&nbsp;</td>
203 <td class="paramname"> <em>skind</em>, </td>
204 </tr>
205 <tr>
206 <td class="paramkey"></td>
207 <td></td>
208 <td class="paramtype">uint64_t&nbsp;</td>
209 <td class="paramname"> <em>val</em>, </td>
210 </tr>
211 <tr>
212 <td class="paramkey"></td>
213 <td></td>
214 <td class="paramtype">const char *&nbsp;</td>
215 <td class="paramname"> <em>non_tt_param</em>, </td>
216 </tr>
217 <tr>
218 <td class="paramkey"></td>
219 <td></td>
220 <td class="paramtype">int&nbsp;</td>
221 <td class="paramname"> <em>fSigned</em>, </td>
222 </tr>
223 <tr>
224 <td class="paramkey"></td>
225 <td></td>
226 <td class="paramtype">int&nbsp;</td>
227 <td class="paramname"> <em>fNegate</em></td><td>&nbsp;</td>
228 </tr>
229 <tr>
230 <td></td>
231 <td>)</td>
232 <td></td><td></td><td></td>
233 </tr>
234 </table>
235</div>
236<div class="memdoc">
237<p>Constructs a "dim" kind token. </p>
238<dl><dt><b>Parameters:</b></dt><dd>
239 <table border="0" cellspacing="2" cellpadding="0">
240 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Pointer to garbage collection context. </td></tr>
241 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>skind</em>&nbsp;</td><td>Token subkind. </td></tr>
242 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>Token numerical value. </td></tr>
243 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>non_tt_param</em>&nbsp;</td><td>pointer to decoded C++ template name. </td></tr>
244 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fSigned</em>&nbsp;</td><td>Signedness of the numerical value. </td></tr>
245 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fNegate</em>&nbsp;</td><td>1 for "val" is negative digit. </td></tr>
246 </table>
247 </dd>
248</dl>
249<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to dim token. </dd></dl>
250<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structs_m_token__dim.html">sMToken_dim</a> </dd></dl>
251
252</div>
253</div>
254<a class="anchor" id="a9a309ae8be7bf65c087195c156fbf9f8"></a><!-- doxytag: member="m_token.c::gen_name" ref="a9a309ae8be7bf65c087195c156fbf9f8" args="(sGcCtx *gc, enum eMSToken skind, const char *name)" -->
255<div class="memitem">
256<div class="memproto">
257 <table class="memname">
258 <tr>
259 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* gen_name </td>
260 <td>(</td>
261 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
262 <td class="paramname"> <em>gc</em>, </td>
263 </tr>
264 <tr>
265 <td class="paramkey"></td>
266 <td></td>
267 <td class="paramtype">enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a>&nbsp;</td>
268 <td class="paramname"> <em>skind</em>, </td>
269 </tr>
270 <tr>
271 <td class="paramkey"></td>
272 <td></td>
273 <td class="paramtype">const char *&nbsp;</td>
274 <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
275 </tr>
276 <tr>
277 <td></td>
278 <td>)</td>
279 <td></td><td></td><td></td>
280 </tr>
281 </table>
282</div>
283<div class="memdoc">
284<p>Constructs a "name" kind token. </p>
285<dl><dt><b>Parameters:</b></dt><dd>
286 <table border="0" cellspacing="2" cellpadding="0">
287 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Pointer to garbage collection context. </td></tr>
288 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>skind</em>&nbsp;</td><td>Token subkind. </td></tr>
289 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>Pointer to name string. </td></tr>
290 </table>
291 </dd>
292</dl>
293<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to name token. </dd></dl>
294<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structs_m_token__name.html">sMToken_name</a> </dd></dl>
295
296</div>
297</div>
298<a class="anchor" id="ace5f8b4a48ceee9d5b2610ba9ad75a4c"></a><!-- doxytag: member="m_token.c::gen_tok" ref="ace5f8b4a48ceee9d5b2610ba9ad75a4c" args="(sGcCtx *gc, enum eMToken kind, enum eMSToken subkind, size_t addend)" -->
299<div class="memitem">
300<div class="memproto">
301 <table class="memname">
302 <tr>
303 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* gen_tok </td>
304 <td>(</td>
305 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
306 <td class="paramname"> <em>gc</em>, </td>
307 </tr>
308 <tr>
309 <td class="paramkey"></td>
310 <td></td>
311 <td class="paramtype">enum <a class="el" href="m__token_8h.html#a50bee8455836804dd921dd275b0bcebd">eMToken</a>&nbsp;</td>
312 <td class="paramname"> <em>kind</em>, </td>
313 </tr>
314 <tr>
315 <td class="paramkey"></td>
316 <td></td>
317 <td class="paramtype">enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a>&nbsp;</td>
318 <td class="paramname"> <em>subkind</em>, </td>
319 </tr>
320 <tr>
321 <td class="paramkey"></td>
322 <td></td>
323 <td class="paramtype">size_t&nbsp;</td>
324 <td class="paramname"> <em>addend</em></td><td>&nbsp;</td>
325 </tr>
326 <tr>
327 <td></td>
328 <td>)</td>
329 <td></td><td></td><td></td>
330 </tr>
331 </table>
332</div>
333<div class="memdoc">
334<p>gen_tok constructs <a class="el" href="unionu_m_token.html">uMToken</a> instances Instances are destroyed with <a class="el" href="libmangle_8h.html#a5d89434e78fb873998f2844e30e0dcb1">release_gc()</a>. </p>
335<dl><dt><b>Parameters:</b></dt><dd>
336 <table border="0" cellspacing="2" cellpadding="0">
337 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Pointer to garbage collection context. </td></tr>
338 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>kind</em>&nbsp;</td><td>Kind of token to construct </td></tr>
339 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>subkind</em>&nbsp;</td><td>Subkind of token to construct </td></tr>
340 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>addend</em>&nbsp;</td><td>Additional byte padding at the end. </td></tr>
341 </table>
342 </dd>
343</dl>
344<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#a5d89434e78fb873998f2844e30e0dcb1">release_gc()</a> </dd></dl>
345
346</div>
347</div>
348<a class="anchor" id="a179397b41a7f31d461ddf8bb40a4f33a"></a><!-- doxytag: member="m_token.c::gen_unary" ref="a179397b41a7f31d461ddf8bb40a4f33a" args="(sGcCtx *gc, enum eMSToken skind, uMToken *un)" -->
349<div class="memitem">
350<div class="memproto">
351 <table class="memname">
352 <tr>
353 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* gen_unary </td>
354 <td>(</td>
355 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
356 <td class="paramname"> <em>gc</em>, </td>
357 </tr>
358 <tr>
359 <td class="paramkey"></td>
360 <td></td>
361 <td class="paramtype">enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a>&nbsp;</td>
362 <td class="paramname"> <em>skind</em>, </td>
363 </tr>
364 <tr>
365 <td class="paramkey"></td>
366 <td></td>
367 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
368 <td class="paramname"> <em>un</em></td><td>&nbsp;</td>
369 </tr>
370 <tr>
371 <td></td>
372 <td>)</td>
373 <td></td><td></td><td></td>
374 </tr>
375 </table>
376</div>
377<div class="memdoc">
378<p>Constructs a "unary" kind token. </p>
379<dl><dt><b>Parameters:</b></dt><dd>
380 <table border="0" cellspacing="2" cellpadding="0">
381 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Pointer to garbage collection context. </td></tr>
382 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>skind</em>&nbsp;</td><td>Token subkind. </td></tr>
383 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>un</em>&nbsp;</td><td>Pointer to leaf element. </td></tr>
384 </table>
385 </dd>
386</dl>
387<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to a unary token. </dd></dl>
388<dl class="see"><dt><b>See also:</b></dt><dd>sMToken_unary </dd></dl>
389
390</div>
391</div>
392<a class="anchor" id="a3b64dc961fdbac6f6908ec924e3ee6e1"></a><!-- doxytag: member="m_token.c::gen_value" ref="a3b64dc961fdbac6f6908ec924e3ee6e1" args="(sGcCtx *gc, enum eMSToken skind, uint64_t val, int is_signed, int size)" -->
393<div class="memitem">
394<div class="memproto">
395 <table class="memname">
396 <tr>
397 <td class="memname"><a class="el" href="unionu_m_token.html">uMToken</a>* gen_value </td>
398 <td>(</td>
399 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
400 <td class="paramname"> <em>gc</em>, </td>
401 </tr>
402 <tr>
403 <td class="paramkey"></td>
404 <td></td>
405 <td class="paramtype">enum <a class="el" href="m__token_8h.html#ad211982ef565f0550b5f86e4d15c6321">eMSToken</a>&nbsp;</td>
406 <td class="paramname"> <em>skind</em>, </td>
407 </tr>
408 <tr>
409 <td class="paramkey"></td>
410 <td></td>
411 <td class="paramtype">uint64_t&nbsp;</td>
412 <td class="paramname"> <em>val</em>, </td>
413 </tr>
414 <tr>
415 <td class="paramkey"></td>
416 <td></td>
417 <td class="paramtype">int&nbsp;</td>
418 <td class="paramname"> <em>is_signed</em>, </td>
419 </tr>
420 <tr>
421 <td class="paramkey"></td>
422 <td></td>
423 <td class="paramtype">int&nbsp;</td>
424 <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
425 </tr>
426 <tr>
427 <td></td>
428 <td>)</td>
429 <td></td><td></td><td></td>
430 </tr>
431 </table>
432</div>
433<div class="memdoc">
434<p>Constructs a "value" kind token. </p>
435<dl><dt><b>Parameters:</b></dt><dd>
436 <table border="0" cellspacing="2" cellpadding="0">
437 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Pointer to garbage collection context. </td></tr>
438 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>skind</em>&nbsp;</td><td>Token subkind. </td></tr>
439 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>Sets the value on token, </td></tr>
440 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>is_signed</em>&nbsp;</td><td>Signed bit of <em>val</em>. </td></tr>
441 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>size</em>&nbsp;</td><td>Width of <em>val</em>. </td></tr>
442 </table>
443 </dd>
444</dl>
445<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to value token. </dd></dl>
446<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structs_m_token__value.html">sMToken_value</a> </dd></dl>
447
448</div>
449</div>
450<a class="anchor" id="aebd5b8b36fc38cc0e8457ff47e796113"></a><!-- doxytag: member="m_token.c::generate_gc" ref="aebd5b8b36fc38cc0e8457ff47e796113" args="(void)" -->
451<div class="memitem">
452<div class="memproto">
453 <table class="memname">
454 <tr>
455 <td class="memname"><a class="el" href="structs_gc_ctx.html">sGcCtx</a>* generate_gc </td>
456 <td>(</td>
457 <td class="paramtype">void&nbsp;</td>
458 <td class="paramname"></td>
459 <td>&nbsp;)&nbsp;</td>
460 <td></td>
461 </tr>
462 </table>
463</div>
464<div class="memdoc">
465<p>Constructs a garbage collection context token. </p>
466<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to context. </dd></dl>
467<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#a5d89434e78fb873998f2844e30e0dcb1">release_gc()</a> </dd></dl>
468
469</div>
470</div>
471<a class="anchor" id="a0d4a763ceb4c3bd20db29d440ea604fb"></a><!-- doxytag: member="m_token.c::print_decl" ref="a0d4a763ceb4c3bd20db29d440ea604fb" args="(FILE *fp, uMToken *r)" -->
472<div class="memitem">
473<div class="memproto">
474 <table class="memname">
475 <tr>
476 <td class="memname">void print_decl </td>
477 <td>(</td>
478 <td class="paramtype">FILE *&nbsp;</td>
479 <td class="paramname"> <em>fp</em>, </td>
480 </tr>
481 <tr>
482 <td class="paramkey"></td>
483 <td></td>
484 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
485 <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
486 </tr>
487 <tr>
488 <td></td>
489 <td>)</td>
490 <td></td><td></td><td></td>
491 </tr>
492 </table>
493</div>
494<div class="memdoc">
495<p>Prints C++ name to file descriptor. </p>
496<dl><dt><b>Parameters:</b></dt><dd>
497 <table border="0" cellspacing="2" cellpadding="0">
498 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fp</em>&nbsp;</td><td>Output file descriptor. </td></tr>
499 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>p</em>&nbsp;</td><td>Token containing information about the C++ name. </td></tr>
500 </table>
501 </dd>
502</dl>
503<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#abd5e852feefdca185545a37ec3c1467e">decode_ms_name()</a> </dd></dl>
504
505</div>
506</div>
507<a class="anchor" id="a5d89434e78fb873998f2844e30e0dcb1"></a><!-- doxytag: member="m_token.c::release_gc" ref="a5d89434e78fb873998f2844e30e0dcb1" args="(sGcCtx *gc)" -->
508<div class="memitem">
509<div class="memproto">
510 <table class="memname">
511 <tr>
512 <td class="memname">void release_gc </td>
513 <td>(</td>
514 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td>
515 <td class="paramname"> <em>gc</em></td>
516 <td>&nbsp;)&nbsp;</td>
517 <td></td>
518 </tr>
519 </table>
520</div>
521<div class="memdoc">
522<p>Releases memory tracked by context. </p>
523<dl><dt><b>Parameters:</b></dt><dd>
524 <table border="0" cellspacing="2" cellpadding="0">
525 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Garbage collection context to work on. </td></tr>
526 </table>
527 </dd>
528</dl>
529<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#aebd5b8b36fc38cc0e8457ff47e796113">generate_gc()</a> </dd></dl>
530
531</div>
532</div>
533<a class="anchor" id="a938de7206a46fd57b9240cc2744a43a2"></a><!-- doxytag: member="m_token.c::sprint_decl" ref="a938de7206a46fd57b9240cc2744a43a2" args="(uMToken *r)" -->
534<div class="memitem">
535<div class="memproto">
536 <table class="memname">
537 <tr>
538 <td class="memname">char* sprint_decl </td>
539 <td>(</td>
540 <td class="paramtype"><a class="el" href="unionu_m_token.html">uMToken</a> *&nbsp;</td>
541 <td class="paramname"> <em>r</em></td>
542 <td>&nbsp;)&nbsp;</td>
543 <td></td>
544 </tr>
545 </table>
546</div>
547<div class="memdoc">
548<p>Get pointer to decoded C++ name string. Use free() to release returned string. </p>
549<dl><dt><b>Parameters:</b></dt><dd>
550 <table border="0" cellspacing="2" cellpadding="0">
551 <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td>C++ name token. </td></tr>
552 </table>
553 </dd>
554</dl>
555<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to decoded C++ name string. </dd></dl>
556<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#abd5e852feefdca185545a37ec3c1467e">decode_ms_name()</a> </dd></dl>
557
558</div>
559</div>
560</div>
561<hr size="1"/><address style="text-align: right;"><small>Generated on 10 Oct 2009 for libmangle by&nbsp;
562<a href="http://www.doxygen.org/index.html">
563<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
564</body>
565</html>