1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Lexical Scanner</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-utilities.html" title="GLib Utilities">
9 <link rel="prev" href="glib-Miscellaneous-Utility-Functions.html" title="Miscellaneous Utility Functions">
10 <link rel="next" href="glib-Automatic-String-Completion.html" title="Automatic String Completion">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
37 <td><a accesskey="p" href="glib-Miscellaneous-Utility-Functions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Automatic-String-Completion.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Lexical-Scanner.synopsis" class="shortcut">Top</a>
46 <a href="#glib-Lexical-Scanner.description" class="shortcut">Description</a>
49 <div class="refentry" title="Lexical Scanner">
50 <a name="glib-Lexical-Scanner"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
53 <h2><span class="refentrytitle"><a name="glib-Lexical-Scanner.top_of_page"></a>Lexical Scanner</span></h2>
54 <p>Lexical Scanner — a general purpose lexical scanner</p>
56 <td valign="top" align="right"></td>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Lexical-Scanner.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include <glib.h>
63 <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner">GScanner</a>;
64 <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig">GScannerConfig</a>;
65 <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a>* <a class="link" href="glib-Lexical-Scanner.html#g-scanner-new" title="g_scanner_new ()">g_scanner_new</a> (const <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="returnvalue">GScannerConfig</span></a> *config_templ);
66 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-destroy" title="g_scanner_destroy ()">g_scanner_destroy</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
68 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-input-file" title="g_scanner_input_file ()">g_scanner_input_file</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
69 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> input_fd);
70 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-sync-file-offset" title="g_scanner_sync_file_offset ()">g_scanner_sync_file_offset</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
71 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-input-text" title="g_scanner_input_text ()">g_scanner_input_text</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
72 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *text,
73 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> text_len);
74 <a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()">g_scanner_peek_next_token</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
75 <a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()">g_scanner_get_next_token</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
76 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-eof" title="g_scanner_eof ()">g_scanner_eof</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
78 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-cur-line" title="g_scanner_cur_line ()">g_scanner_cur_line</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
79 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-cur-position" title="g_scanner_cur_position ()">g_scanner_cur_position</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
80 <a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-cur-token" title="g_scanner_cur_token ()">g_scanner_cur_token</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
81 <a class="link" href="glib-Lexical-Scanner.html#GTokenValue" title="union GTokenValue"><span class="returnvalue">GTokenValue</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-cur-value" title="g_scanner_cur_value ()">g_scanner_cur_value</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);
83 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-set-scope" title="g_scanner_set_scope ()">g_scanner_set_scope</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
84 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id);
85 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-add-symbol" title="g_scanner_scope_add_symbol ()">g_scanner_scope_add_symbol</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
86 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
87 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol,
88 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> value);
89 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-foreach-symbol" title="g_scanner_scope_foreach_symbol ()">g_scanner_scope_foreach_symbol</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
90 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
91 <a class="link" href="glib-Hash-Tables.html#GHFunc" title="GHFunc ()"><span class="returnvalue">GHFunc</span></a> func,
92 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
93 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-lookup-symbol" title="g_scanner_scope_lookup_symbol ()">g_scanner_scope_lookup_symbol</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
94 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
95 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol);
96 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-remove-symbol" title="g_scanner_scope_remove_symbol ()">g_scanner_scope_remove_symbol</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
97 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
98 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol);
99 #define <a class="link" href="glib-Lexical-Scanner.html#g-scanner-add-symbol" title="g_scanner_add_symbol()">g_scanner_add_symbol</a> ( scanner, symbol, value )
100 #define <a class="link" href="glib-Lexical-Scanner.html#g-scanner-remove-symbol" title="g_scanner_remove_symbol()">g_scanner_remove_symbol</a> ( scanner, symbol )
101 #define <a class="link" href="glib-Lexical-Scanner.html#g-scanner-foreach-symbol" title="g_scanner_foreach_symbol()">g_scanner_foreach_symbol</a> ( scanner, func, data )
103 #define <a class="link" href="glib-Lexical-Scanner.html#g-scanner-freeze-symbol-table" title="g_scanner_freeze_symbol_table()">g_scanner_freeze_symbol_table</a> (scanner)
104 #define <a class="link" href="glib-Lexical-Scanner.html#g-scanner-thaw-symbol-table" title="g_scanner_thaw_symbol_table()">g_scanner_thaw_symbol_table</a> (scanner)
105 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-lookup-symbol" title="g_scanner_lookup_symbol ()">g_scanner_lookup_symbol</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
106 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol);
108 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-warn" title="g_scanner_warn ()">g_scanner_warn</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
109 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *format,
111 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-error" title="g_scanner_error ()">g_scanner_error</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
112 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *format,
114 <span class="returnvalue">void</span> <a class="link" href="glib-Lexical-Scanner.html#g-scanner-unexp-token" title="g_scanner_unexp_token ()">g_scanner_unexp_token</a> (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
115 <a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> expected_token,
116 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *identifier_spec,
117 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol_spec,
118 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol_name,
119 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *message,
120 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> is_error);
121 <span class="returnvalue">void</span> (<a class="link" href="glib-Lexical-Scanner.html#GScannerMsgFunc" title="GScannerMsgFunc ()">*GScannerMsgFunc</a>) (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
122 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *message,
123 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> error);
125 #define <a class="link" href="glib-Lexical-Scanner.html#G-CSET-a-2-z" title="G_CSET_a_2_z">G_CSET_a_2_z</a>
126 #define <a class="link" href="glib-Lexical-Scanner.html#G-CSET-A-2-Z:CAPS" title="G_CSET_A_2_Z">G_CSET_A_2_Z</a>
127 #define <a class="link" href="glib-Lexical-Scanner.html#G-CSET-DIGITS:CAPS" title="G_CSET_DIGITS">G_CSET_DIGITS</a>
128 #define <a class="link" href="glib-Lexical-Scanner.html#G-CSET-LATINC:CAPS" title="G_CSET_LATINC">G_CSET_LATINC</a>
129 #define <a class="link" href="glib-Lexical-Scanner.html#G-CSET-LATINS:CAPS" title="G_CSET_LATINS">G_CSET_LATINS</a>
130 enum <a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType">GTokenType</a>;
131 union <a class="link" href="glib-Lexical-Scanner.html#GTokenValue" title="union GTokenValue">GTokenValue</a>;
132 enum <a class="link" href="glib-Lexical-Scanner.html#GErrorType" title="enum GErrorType">GErrorType</a>;
135 <div class="refsect1" title="Description">
136 <a name="glib-Lexical-Scanner.description"></a><h2>Description</h2>
138 The <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> and its associated functions provide a general purpose
142 <div class="refsect1" title="Details">
143 <a name="glib-Lexical-Scanner.details"></a><h2>Details</h2>
144 <div class="refsect2" title="GScanner">
145 <a name="GScanner"></a><h3>GScanner</h3>
146 <pre class="programlisting">typedef struct {
149 guint max_parse_errors;
151 /* g_scanner_error() increments this field */
154 /* name of input stream, featured by the default message handler */
155 const gchar *input_name;
160 /* link into the scanner configuration */
161 GScannerConfig *config;
163 /* fields filled in after g_scanner_get_next_token() */
169 /* fields filled in after g_scanner_peek_next_token() */
170 GTokenType next_token;
171 GTokenValue next_value;
175 /* to be considered private */
176 GHashTable *symbol_table;
179 const gchar *text_end;
183 /* handler function for _warn and _error */
184 GScannerMsgFunc msg_handler;
188 The data structure representing a lexical scanner.
191 You should set <em class="structfield"><code>input_name</code></em> after creating
192 the scanner, since it is used by the default message handler when
193 displaying warnings and errors. If you are scanning a file, the file
194 name would be a good choice.
197 The <em class="structfield"><code>user_data</code></em> and
198 <em class="structfield"><code>max_parse_errors</code></em> fields are not used.
199 If you need to associate extra data with the scanner you can place them here.
202 If you want to use your own message handler you can set the
203 <em class="structfield"><code>msg_handler</code></em> field. The type of the message
204 handler function is declared by <a class="link" href="glib-Lexical-Scanner.html#GScannerMsgFunc" title="GScannerMsgFunc ()"><span class="type">GScannerMsgFunc</span></a>.
206 <div class="variablelist"><table border="0">
207 <col align="left" valign="top">
210 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GScanner.user-data"></a>user_data</code></em>;</span></p></td>
215 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.max-parse-errors"></a>max_parse_errors</code></em>;</span></p></td>
220 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.parse-errors"></a>parse_errors</code></em>;</span></p></td>
225 <td><p><span class="term">const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GScanner.input-name"></a>input_name</code></em>;</span></p></td>
230 <td><p><span class="term"><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> *<em class="structfield"><code><a name="GScanner.qdata"></a>qdata</code></em>;</span></p></td>
235 <td><p><span class="term"><a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="type">GScannerConfig</span></a> *<em class="structfield"><code><a name="GScanner.config"></a>config</code></em>;</span></p></td>
240 <td><p><span class="term"><a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="type">GTokenType</span></a> <em class="structfield"><code><a name="GScanner.token"></a>token</code></em>;</span></p></td>
241 <td> token parsed by the last <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>
245 <td><p><span class="term"><a class="link" href="glib-Lexical-Scanner.html#GTokenValue" title="union GTokenValue"><span class="type">GTokenValue</span></a> <em class="structfield"><code><a name="GScanner.value"></a>value</code></em>;</span></p></td>
246 <td> value of the last token from <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>
250 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.line"></a>line</code></em>;</span></p></td>
251 <td> line number of the last token from <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>
255 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.position"></a>position</code></em>;</span></p></td>
256 <td> char number of the last token from <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>
260 <td><p><span class="term"><a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="type">GTokenType</span></a> <em class="structfield"><code><a name="GScanner.next-token"></a>next_token</code></em>;</span></p></td>
261 <td> token parsed by the last <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()"><code class="function">g_scanner_peek_next_token()</code></a>
265 <td><p><span class="term"><a class="link" href="glib-Lexical-Scanner.html#GTokenValue" title="union GTokenValue"><span class="type">GTokenValue</span></a> <em class="structfield"><code><a name="GScanner.next-value"></a>next_value</code></em>;</span></p></td>
266 <td> value of the last token from <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()"><code class="function">g_scanner_peek_next_token()</code></a>
270 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.next-line"></a>next_line</code></em>;</span></p></td>
271 <td> line number of the last token from <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()"><code class="function">g_scanner_peek_next_token()</code></a>
275 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.next-position"></a>next_position</code></em>;</span></p></td>
276 <td>char number of the last token from <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()"><code class="function">g_scanner_peek_next_token()</code></a>
280 <td><p><span class="term"><a class="link" href="glib-Hash-Tables.html#GHashTable" title="GHashTable"><span class="type">GHashTable</span></a> *<em class="structfield"><code><a name="GScanner.symbol-table"></a>symbol_table</code></em>;</span></p></td>
285 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GScanner.input-fd"></a>input_fd</code></em>;</span></p></td>
290 <td><p><span class="term">const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GScanner.text"></a>text</code></em>;</span></p></td>
295 <td><p><span class="term">const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GScanner.text-end"></a>text_end</code></em>;</span></p></td>
300 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GScanner.buffer"></a>buffer</code></em>;</span></p></td>
305 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GScanner.scope-id"></a>scope_id</code></em>;</span></p></td>
310 <td><p><span class="term"><a class="link" href="glib-Lexical-Scanner.html#GScannerMsgFunc" title="GScannerMsgFunc ()"><span class="type">GScannerMsgFunc</span></a> <em class="structfield"><code><a name="GScanner.msg-handler"></a>msg_handler</code></em>;</span></p></td>
311 <td>function to handle GScanner message output
318 <div class="refsect2" title="GScannerConfig">
319 <a name="GScannerConfig"></a><h3>GScannerConfig</h3>
320 <pre class="programlisting">typedef struct {
323 gchar *cset_skip_characters; /* default: " \t\n" */
324 gchar *cset_identifier_first;
325 gchar *cset_identifier_nth;
326 gchar *cpair_comment_single; /* default: "#\n" */
328 /* Should symbol lookup work case sensitive?
330 guint case_sensitive : 1;
332 /* Boolean values to be adjusted "on the fly"
333 * to configure scanning behaviour.
335 guint skip_comment_multi : 1; /* C like comment */
336 guint skip_comment_single : 1; /* single line comment */
337 guint scan_comment_multi : 1; /* scan multi line comments? */
338 guint scan_identifier : 1;
339 guint scan_identifier_1char : 1;
340 guint scan_identifier_NULL : 1;
341 guint scan_symbols : 1;
342 guint scan_binary : 1;
343 guint scan_octal : 1;
344 guint scan_float : 1;
345 guint scan_hex : 1; /* `0x0ff0' */
346 guint scan_hex_dollar : 1; /* `$0ff0' */
347 guint scan_string_sq : 1; /* string: 'anything' */
348 guint scan_string_dq : 1; /* string: "\\-escapes!\n" */
349 guint numbers_2_int : 1; /* bin, octal, hex => int */
350 guint int_2_float : 1; /* int => G_TOKEN_FLOAT? */
351 guint identifier_2_string : 1;
352 guint char_2_token : 1; /* return G_TOKEN_CHAR? */
353 guint symbol_2_token : 1;
354 guint scope_0_fallback : 1; /* try scope 0 on lookups? */
355 guint store_int64 : 1; /* use value.v_int64 rather than v_int */
360 Specifies the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> parser configuration. Most settings can be changed during
361 the parsing phase and will affect the lexical parsing of the next unpeeked token.
364 <em class="structfield"><code>cset_skip_characters</code></em> specifies which characters
365 should be skipped by the scanner (the default is the whitespace characters:
366 space, tab, carriage-return and line-feed).
369 <em class="structfield"><code>cset_identifier_first</code></em> specifies the characters
370 which can start identifiers (the default is <a class="link" href="glib-Lexical-Scanner.html#G-CSET-a-2-z" title="G_CSET_a_2_z"><span class="type">G_CSET_a_2_z</span></a>, "_", and
371 <a class="link" href="glib-Lexical-Scanner.html#G-CSET-A-2-Z:CAPS" title="G_CSET_A_2_Z"><span class="type">G_CSET_A_2_Z</span></a>).
374 <em class="structfield"><code>cset_identifier_nth</code></em> specifies the characters
375 which can be used in identifiers, after the first character (the default
376 is <a class="link" href="glib-Lexical-Scanner.html#G-CSET-a-2-z" title="G_CSET_a_2_z"><span class="type">G_CSET_a_2_z</span></a>, "_0123456789", <a class="link" href="glib-Lexical-Scanner.html#G-CSET-A-2-Z:CAPS" title="G_CSET_A_2_Z"><span class="type">G_CSET_A_2_Z</span></a>, <a class="link" href="glib-Lexical-Scanner.html#G-CSET-LATINS:CAPS" title="G_CSET_LATINS"><span class="type">G_CSET_LATINS</span></a>,
377 <a class="link" href="glib-Lexical-Scanner.html#G-CSET-LATINC:CAPS" title="G_CSET_LATINC"><span class="type">G_CSET_LATINC</span></a>).
380 <em class="structfield"><code>cpair_comment_single</code></em> specifies the characters
381 at the start and end of single-line comments. The default is "#\n" which
382 means that single-line comments start with a '#' and continue until a '\n'
386 <em class="structfield"><code>case_sensitive</code></em> specifies if symbols are
387 case sensitive (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
390 <em class="structfield"><code>skip_comment_multi</code></em> specifies if multi-line
391 comments are skipped and not returned as tokens (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
394 <em class="structfield"><code>skip_comment_single</code></em> specifies if single-line
395 comments are skipped and not returned as tokens (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
398 <em class="structfield"><code>scan_comment_multi</code></em> specifies if multi-line
399 comments are recognized (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
402 <em class="structfield"><code>scan_identifier</code></em> specifies if identifiers
403 are recognized (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
406 <em class="structfield"><code>scan_identifier_1char</code></em> specifies if single-character
407 identifiers are recognized (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
410 <em class="structfield"><code>scan_identifier_NULL</code></em> specifies if
411 <code class="literal">NULL</code> is reported as <span class="type">G_TOKEN_IDENTIFIER_NULL</span>.
412 (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
415 <em class="structfield"><code>scan_symbols</code></em> specifies if symbols are
416 recognized (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
419 <em class="structfield"><code>scan_binary</code></em> specifies if binary numbers
420 are recognized (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
423 <em class="structfield"><code>scan_octal</code></em> specifies if octal numbers
424 are recognized (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
427 <em class="structfield"><code>scan_float</code></em> specifies if floating point numbers
428 are recognized (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
431 <em class="structfield"><code>scan_hex</code></em> specifies if hexadecimal numbers
432 are recognized (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
435 <em class="structfield"><code>scan_hex_dollar</code></em> specifies if '$' is recognized
436 as a prefix for hexadecimal numbers (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
439 <em class="structfield"><code>scan_string_sq</code></em> specifies if strings can be
440 enclosed in single quotes (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
443 <em class="structfield"><code>scan_string_dq</code></em> specifies if strings can be
444 enclosed in double quotes (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
447 <em class="structfield"><code>numbers_2_int</code></em> specifies if binary, octal and
448 hexadecimal numbers are reported as <span class="type">G_TOKEN_INT</span> (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
451 <em class="structfield"><code>int_2_float</code></em> specifies if all numbers are
452 reported as <span class="type">G_TOKEN_FLOAT</span> (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
455 <em class="structfield"><code>identifier_2_string</code></em> specifies if identifiers
456 are reported as strings (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
459 <em class="structfield"><code>char_2_token</code></em> specifies if characters
460 are reported by setting <code class="literal">token = ch</code> or as <span class="type">G_TOKEN_CHAR</span>
461 (the default is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>).
464 <em class="structfield"><code>symbol_2_token</code></em> specifies if symbols
465 are reported by setting <code class="literal">token = v_symbol</code> or as
466 <span class="type">G_TOKEN_SYMBOL</span> (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
469 <em class="structfield"><code>scope_0_fallback</code></em> specifies if a symbol
470 is searched for in the default scope in addition to the current scope
471 (the default is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>).
475 <div class="refsect2" title="g_scanner_new ()">
476 <a name="g-scanner-new"></a><h3>g_scanner_new ()</h3>
477 <pre class="programlisting"><a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a>* g_scanner_new (const <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="returnvalue">GScannerConfig</span></a> *config_templ);</pre>
479 Creates a new <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
480 The <em class="parameter"><code>config_templ</code></em> structure specifies the initial settings of the scanner,
481 which are copied into the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> <em class="structfield"><code>config</code></em> field.
482 If you pass <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> then the default settings are used.
484 <div class="variablelist"><table border="0">
485 <col align="left" valign="top">
488 <td><p><span class="term"><em class="parameter"><code>config_templ</code></em> :</span></p></td>
489 <td>the initial scanner settings.
493 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
494 <td>the new <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
501 <div class="refsect2" title="g_scanner_destroy ()">
502 <a name="g-scanner-destroy"></a><h3>g_scanner_destroy ()</h3>
503 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_destroy (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
505 Frees all memory used by the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
507 <div class="variablelist"><table border="0">
508 <col align="left" valign="top">
510 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
511 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
517 <div class="refsect2" title="g_scanner_input_file ()">
518 <a name="g-scanner-input-file"></a><h3>g_scanner_input_file ()</h3>
519 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_input_file (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
520 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> input_fd);</pre>
522 Prepares to scan a file.
524 <div class="variablelist"><table border="0">
525 <col align="left" valign="top">
528 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
529 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
533 <td><p><span class="term"><em class="parameter"><code>input_fd</code></em> :</span></p></td>
534 <td>a file descriptor.
541 <div class="refsect2" title="g_scanner_sync_file_offset ()">
542 <a name="g-scanner-sync-file-offset"></a><h3>g_scanner_sync_file_offset ()</h3>
543 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_sync_file_offset (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
545 Rewinds the filedescriptor to the current buffer position and blows
546 the file read ahead buffer. This is useful for third party uses of
547 the scanners filedescriptor, which hooks onto the current scanning
550 <div class="variablelist"><table border="0">
551 <col align="left" valign="top">
553 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
554 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
560 <div class="refsect2" title="g_scanner_input_text ()">
561 <a name="g-scanner-input-text"></a><h3>g_scanner_input_text ()</h3>
562 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_input_text (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
563 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *text,
564 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> text_len);</pre>
566 Prepares to scan a text buffer.
568 <div class="variablelist"><table border="0">
569 <col align="left" valign="top">
572 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
573 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
577 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
578 <td>the text buffer to scan.
582 <td><p><span class="term"><em class="parameter"><code>text_len</code></em> :</span></p></td>
583 <td>the length of the text buffer.
590 <div class="refsect2" title="g_scanner_peek_next_token ()">
591 <a name="g-scanner-peek-next-token"></a><h3>g_scanner_peek_next_token ()</h3>
592 <pre class="programlisting"><a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> g_scanner_peek_next_token (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
594 Parses the next token, without removing it from the input stream.
595 The token data is placed in the
596 <em class="structfield"><code>next_token</code></em>,
597 <em class="structfield"><code>next_value</code></em>,
598 <em class="structfield"><code>next_line</code></em>, and
599 <em class="structfield"><code>next_position</code></em> fields of the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> structure.
602 Note that, while the token is not removed from the input stream (i.e.
603 the next call to <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a> will return the same token),
604 it will not be reevaluated. This can lead to surprising results when
605 changing scope or the scanner configuration after peeking the next token.
606 Getting the next token after switching the scope or configuration will
607 return whatever was peeked before, regardless of any symbols that may
608 have been added or removed in the new scope.
610 <div class="variablelist"><table border="0">
611 <col align="left" valign="top">
614 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
615 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
619 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
620 <td>the type of the token.
627 <div class="refsect2" title="g_scanner_get_next_token ()">
628 <a name="g-scanner-get-next-token"></a><h3>g_scanner_get_next_token ()</h3>
629 <pre class="programlisting"><a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> g_scanner_get_next_token (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
631 Parses the next token just like <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()"><code class="function">g_scanner_peek_next_token()</code></a> and also
632 removes it from the input stream.
633 The token data is placed in the
634 <em class="structfield"><code>token</code></em>,
635 <em class="structfield"><code>value</code></em>,
636 <em class="structfield"><code>line</code></em>, and
637 <em class="structfield"><code>position</code></em> fields of the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> structure.
639 <div class="variablelist"><table border="0">
640 <col align="left" valign="top">
643 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
644 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
648 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
649 <td>the type of the token.
656 <div class="refsect2" title="g_scanner_eof ()">
657 <a name="g-scanner-eof"></a><h3>g_scanner_eof ()</h3>
658 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_scanner_eof (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
660 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the scanner has reached the end of the file or text buffer.
662 <div class="variablelist"><table border="0">
663 <col align="left" valign="top">
666 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
667 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
671 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
673 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the scanner has reached the end of the file or text buffer.
680 <div class="refsect2" title="g_scanner_cur_line ()">
681 <a name="g-scanner-cur-line"></a><h3>g_scanner_cur_line ()</h3>
682 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_scanner_cur_line (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
684 Returns the current line in the input stream (counting from 1).
685 This is the line of the last token parsed via <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>.
687 <div class="variablelist"><table border="0">
688 <col align="left" valign="top">
691 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
692 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
696 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
697 <td>the current line.
704 <div class="refsect2" title="g_scanner_cur_position ()">
705 <a name="g-scanner-cur-position"></a><h3>g_scanner_cur_position ()</h3>
706 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_scanner_cur_position (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
708 Returns the current position in the current line (counting from 0).
709 This is the position of the last token parsed via <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>.
711 <div class="variablelist"><table border="0">
712 <col align="left" valign="top">
715 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
716 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
720 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
721 <td>the current position on the line.
728 <div class="refsect2" title="g_scanner_cur_token ()">
729 <a name="g-scanner-cur-token"></a><h3>g_scanner_cur_token ()</h3>
730 <pre class="programlisting"><a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> g_scanner_cur_token (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
732 Gets the current token type.
733 This is simply the <em class="structfield"><code>token</code></em> field in the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>
736 <div class="variablelist"><table border="0">
737 <col align="left" valign="top">
740 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
741 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
745 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
746 <td>the current token type.
753 <div class="refsect2" title="g_scanner_cur_value ()">
754 <a name="g-scanner-cur-value"></a><h3>g_scanner_cur_value ()</h3>
755 <pre class="programlisting"><a class="link" href="glib-Lexical-Scanner.html#GTokenValue" title="union GTokenValue"><span class="returnvalue">GTokenValue</span></a> g_scanner_cur_value (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner);</pre>
757 Gets the current token value.
758 This is simply the <em class="structfield"><code>value</code></em> field in the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>
761 <div class="variablelist"><table border="0">
762 <col align="left" valign="top">
765 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
766 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
770 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
771 <td>the current token value.
778 <div class="refsect2" title="g_scanner_set_scope ()">
779 <a name="g-scanner-set-scope"></a><h3>g_scanner_set_scope ()</h3>
780 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_scanner_set_scope (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
781 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id);</pre>
783 Sets the current scope.
785 <div class="variablelist"><table border="0">
786 <col align="left" valign="top">
789 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
790 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
794 <td><p><span class="term"><em class="parameter"><code>scope_id</code></em> :</span></p></td>
795 <td>the new scope id.
799 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
800 <td>the old scope id.
807 <div class="refsect2" title="g_scanner_scope_add_symbol ()">
808 <a name="g-scanner-scope-add-symbol"></a><h3>g_scanner_scope_add_symbol ()</h3>
809 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_scope_add_symbol (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
810 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
811 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol,
812 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> value);</pre>
814 Adds a symbol to the given scope.
816 <div class="variablelist"><table border="0">
817 <col align="left" valign="top">
820 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
821 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
825 <td><p><span class="term"><em class="parameter"><code>scope_id</code></em> :</span></p></td>
830 <td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
831 <td>the symbol to add.
835 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
836 <td>the value of the symbol.
843 <div class="refsect2" title="g_scanner_scope_foreach_symbol ()">
844 <a name="g-scanner-scope-foreach-symbol"></a><h3>g_scanner_scope_foreach_symbol ()</h3>
845 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_scope_foreach_symbol (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
846 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
847 <a class="link" href="glib-Hash-Tables.html#GHFunc" title="GHFunc ()"><span class="returnvalue">GHFunc</span></a> func,
848 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
850 Calls the given function for each of the symbol/value pairs in the
851 given scope of the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>. The function is passed the symbol and
852 value of each pair, and the given <em class="parameter"><code>user_data</code></em> parameter.
854 <div class="variablelist"><table border="0">
855 <col align="left" valign="top">
858 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
859 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
863 <td><p><span class="term"><em class="parameter"><code>scope_id</code></em> :</span></p></td>
868 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
869 <td>the function to call for each symbol/value pair.
873 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
874 <td>user data to pass to the function.
881 <div class="refsect2" title="g_scanner_scope_lookup_symbol ()">
882 <a name="g-scanner-scope-lookup-symbol"></a><h3>g_scanner_scope_lookup_symbol ()</h3>
883 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_scanner_scope_lookup_symbol (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
884 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
885 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol);</pre>
887 Looks up a symbol in a scope and return its value. If the
888 symbol is not bound in the scope, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is returned.
890 <div class="variablelist"><table border="0">
891 <col align="left" valign="top">
894 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
895 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
899 <td><p><span class="term"><em class="parameter"><code>scope_id</code></em> :</span></p></td>
904 <td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
905 <td>the symbol to look up.
909 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
910 <td>the value of <em class="parameter"><code>symbol</code></em> in the given scope, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
911 if <em class="parameter"><code>symbol</code></em> is not bound in the given scope.
918 <div class="refsect2" title="g_scanner_scope_remove_symbol ()">
919 <a name="g-scanner-scope-remove-symbol"></a><h3>g_scanner_scope_remove_symbol ()</h3>
920 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_scope_remove_symbol (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
921 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> scope_id,
922 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol);</pre>
924 Removes a symbol from a scope.
926 <div class="variablelist"><table border="0">
927 <col align="left" valign="top">
930 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
931 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
935 <td><p><span class="term"><em class="parameter"><code>scope_id</code></em> :</span></p></td>
940 <td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
941 <td>the symbol to remove.
948 <div class="refsect2" title="g_scanner_add_symbol()">
949 <a name="g-scanner-add-symbol"></a><h3>g_scanner_add_symbol()</h3>
950 <pre class="programlisting">#define g_scanner_add_symbol( scanner, symbol, value )</pre>
951 <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
952 <h3 class="title">Warning</h3>
953 <p><code class="literal">g_scanner_add_symbol</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-add-symbol" title="g_scanner_scope_add_symbol ()"><code class="function">g_scanner_scope_add_symbol()</code></a> instead.</p>
956 Adds a symbol to the default scope.
958 <div class="variablelist"><table border="0">
959 <col align="left" valign="top">
962 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
963 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
967 <td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
968 <td>the symbol to add.
972 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
973 <td>the value of the symbol.
980 <div class="refsect2" title="g_scanner_remove_symbol()">
981 <a name="g-scanner-remove-symbol"></a><h3>g_scanner_remove_symbol()</h3>
982 <pre class="programlisting">#define g_scanner_remove_symbol( scanner, symbol )</pre>
983 <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
984 <h3 class="title">Warning</h3>
985 <p><code class="literal">g_scanner_remove_symbol</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-remove-symbol" title="g_scanner_scope_remove_symbol ()"><code class="function">g_scanner_scope_remove_symbol()</code></a> instead.</p>
988 Removes a symbol from the default scope.
990 <div class="variablelist"><table border="0">
991 <col align="left" valign="top">
994 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
995 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
999 <td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
1000 <td>the symbol to remove.
1007 <div class="refsect2" title="g_scanner_foreach_symbol()">
1008 <a name="g-scanner-foreach-symbol"></a><h3>g_scanner_foreach_symbol()</h3>
1009 <pre class="programlisting">#define g_scanner_foreach_symbol( scanner, func, data )</pre>
1010 <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1011 <h3 class="title">Warning</h3>
1012 <p><code class="literal">g_scanner_foreach_symbol</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-Lexical-Scanner.html#g-scanner-scope-foreach-symbol" title="g_scanner_scope_foreach_symbol ()"><code class="function">g_scanner_scope_foreach_symbol()</code></a> instead.</p>
1015 Calls a function for each symbol in the default scope.
1017 <div class="variablelist"><table border="0">
1018 <col align="left" valign="top">
1021 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1022 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1026 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
1027 <td>the function to call with each symbol.
1031 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1032 <td>data to pass to the function.
1039 <div class="refsect2" title="g_scanner_freeze_symbol_table()">
1040 <a name="g-scanner-freeze-symbol-table"></a><h3>g_scanner_freeze_symbol_table()</h3>
1041 <pre class="programlisting">#define g_scanner_freeze_symbol_table(scanner)</pre>
1042 <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1043 <h3 class="title">Warning</h3>
1044 <p><code class="literal">g_scanner_freeze_symbol_table</code> has been deprecated since version 2.2 and should not be used in newly-written code. This macro does nothing.</p>
1047 There is no reason to use this macro, since it does nothing.
1049 <div class="variablelist"><table border="0">
1050 <col align="left" valign="top">
1052 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1053 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1059 <div class="refsect2" title="g_scanner_thaw_symbol_table()">
1060 <a name="g-scanner-thaw-symbol-table"></a><h3>g_scanner_thaw_symbol_table()</h3>
1061 <pre class="programlisting">#define g_scanner_thaw_symbol_table(scanner)</pre>
1062 <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1063 <h3 class="title">Warning</h3>
1064 <p><code class="literal">g_scanner_thaw_symbol_table</code> has been deprecated since version 2.2 and should not be used in newly-written code. This macro does nothing.</p>
1067 There is no reason to use this macro, since it does nothing.
1069 <div class="variablelist"><table border="0">
1070 <col align="left" valign="top">
1072 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1073 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1079 <div class="refsect2" title="g_scanner_lookup_symbol ()">
1080 <a name="g-scanner-lookup-symbol"></a><h3>g_scanner_lookup_symbol ()</h3>
1081 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_scanner_lookup_symbol (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
1082 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol);</pre>
1084 Looks up a symbol in the current scope and return its value. If the
1085 symbol is not bound in the current scope, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is returned.
1087 <div class="variablelist"><table border="0">
1088 <col align="left" valign="top">
1091 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1092 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1096 <td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
1097 <td>the symbol to look up.
1101 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1102 <td>the value of <em class="parameter"><code>symbol</code></em> in the current scope, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
1103 if <em class="parameter"><code>symbol</code></em> is not bound in the current scope.
1110 <div class="refsect2" title="g_scanner_warn ()">
1111 <a name="g-scanner-warn"></a><h3>g_scanner_warn ()</h3>
1112 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_warn (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
1113 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *format,
1116 Outputs a warning message, via the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> message handler.
1118 <div class="variablelist"><table border="0">
1119 <col align="left" valign="top">
1122 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1123 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1127 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1128 <td>the message format. See the <code class="function"><code class="function">printf()</code></code>
1133 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1134 <td>the parameters to insert into the format string.
1141 <div class="refsect2" title="g_scanner_error ()">
1142 <a name="g-scanner-error"></a><h3>g_scanner_error ()</h3>
1143 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_error (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
1144 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *format,
1147 Outputs an error message, via the <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a> message handler.
1149 <div class="variablelist"><table border="0">
1150 <col align="left" valign="top">
1153 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1154 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1158 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1159 <td>the message format. See the <code class="function"><code class="function">printf()</code></code>
1164 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1165 <td>the parameters to insert into the format string.
1172 <div class="refsect2" title="g_scanner_unexp_token ()">
1173 <a name="g-scanner-unexp-token"></a><h3>g_scanner_unexp_token ()</h3>
1174 <pre class="programlisting"><span class="returnvalue">void</span> g_scanner_unexp_token (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
1175 <a class="link" href="glib-Lexical-Scanner.html#GTokenType" title="enum GTokenType"><span class="returnvalue">GTokenType</span></a> expected_token,
1176 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *identifier_spec,
1177 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol_spec,
1178 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *symbol_name,
1179 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *message,
1180 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> is_error);</pre>
1182 Outputs a message through the scanner's msg_handler, resulting from an
1183 unexpected token in the input stream.
1184 Note that you should not call <a class="link" href="glib-Lexical-Scanner.html#g-scanner-peek-next-token" title="g_scanner_peek_next_token ()"><code class="function">g_scanner_peek_next_token()</code></a> followed by
1185 <a class="link" href="glib-Lexical-Scanner.html#g-scanner-unexp-token" title="g_scanner_unexp_token ()"><code class="function">g_scanner_unexp_token()</code></a> without an intermediate call to
1186 <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a>, as <a class="link" href="glib-Lexical-Scanner.html#g-scanner-unexp-token" title="g_scanner_unexp_token ()"><code class="function">g_scanner_unexp_token()</code></a> evaluates the
1187 scanner's current token (not the peeked token) to construct part
1190 <div class="variablelist"><table border="0">
1191 <col align="left" valign="top">
1194 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1195 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1199 <td><p><span class="term"><em class="parameter"><code>expected_token</code></em> :</span></p></td>
1200 <td>the expected token.
1204 <td><p><span class="term"><em class="parameter"><code>identifier_spec</code></em> :</span></p></td>
1205 <td>a string describing how the scanner's user refers to
1206 identifiers (<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> defaults to "identifier").
1207 This is used if <em class="parameter"><code>expected_token</code></em> is <span class="type">G_TOKEN_IDENTIFIER</span>
1208 or <span class="type">G_TOKEN_IDENTIFIER_NULL</span>.
1212 <td><p><span class="term"><em class="parameter"><code>symbol_spec</code></em> :</span></p></td>
1213 <td>a string describing how the scanner's user refers to
1214 symbols (<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> defaults to "symbol").
1215 This is used if <em class="parameter"><code>expected_token</code></em> is <span class="type">G_TOKEN_SYMBOL</span> or
1216 any token value greater than <span class="type">G_TOKEN_LAST</span>.
1220 <td><p><span class="term"><em class="parameter"><code>symbol_name</code></em> :</span></p></td>
1221 <td>the name of the symbol, if the scanner's current token
1226 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
1227 <td>a message string to output at the end of the warning/error, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
1231 <td><p><span class="term"><em class="parameter"><code>is_error</code></em> :</span></p></td>
1232 <td>if <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> it is output as an error. If <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> it is output as a
1240 <div class="refsect2" title="GScannerMsgFunc ()">
1241 <a name="GScannerMsgFunc"></a><h3>GScannerMsgFunc ()</h3>
1242 <pre class="programlisting"><span class="returnvalue">void</span> (*GScannerMsgFunc) (<a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="returnvalue">GScanner</span></a> *scanner,
1243 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *message,
1244 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> error);</pre>
1246 Specifies the type of the message handler function.
1248 <div class="variablelist"><table border="0">
1249 <col align="left" valign="top">
1252 <td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
1253 <td>a <a class="link" href="glib-Lexical-Scanner.html#GScanner" title="GScanner"><span class="type">GScanner</span></a>.
1257 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
1262 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
1264 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the message signals an error, <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> if it
1272 <div class="refsect2" title="G_CSET_a_2_z">
1273 <a name="G-CSET-a-2-z"></a><h3>G_CSET_a_2_z</h3>
1274 <pre class="programlisting">#define G_CSET_a_2_z "abcdefghijklmnopqrstuvwxyz"
1277 The set of lowercase ASCII alphabet characters.
1278 Used for specifying valid identifier characters in <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="type">GScannerConfig</span></a>.
1282 <div class="refsect2" title="G_CSET_A_2_Z">
1283 <a name="G-CSET-A-2-Z:CAPS"></a><h3>G_CSET_A_2_Z</h3>
1284 <pre class="programlisting">#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
1287 The set of uppercase ASCII alphabet characters.
1288 Used for specifying valid identifier characters in <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="type">GScannerConfig</span></a>.
1292 <div class="refsect2" title="G_CSET_DIGITS">
1293 <a name="G-CSET-DIGITS:CAPS"></a><h3>G_CSET_DIGITS</h3>
1294 <pre class="programlisting">#define G_CSET_DIGITS "0123456789"
1298 Used for specifying valid identifier characters in <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="type">GScannerConfig</span></a>.
1302 <div class="refsect2" title="G_CSET_LATINC">
1303 <a name="G-CSET-LATINC:CAPS"></a><h3>G_CSET_LATINC</h3>
1304 <pre class="programlisting">#define G_CSET_LATINC</pre>
1306 The set of uppercase ISO 8859-1 alphabet characters which are
1307 not ASCII characters.
1308 Used for specifying valid identifier characters in <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="type">GScannerConfig</span></a>.
1312 <div class="refsect2" title="G_CSET_LATINS">
1313 <a name="G-CSET-LATINS:CAPS"></a><h3>G_CSET_LATINS</h3>
1314 <pre class="programlisting">#define G_CSET_LATINS</pre>
1316 The set of lowercase ISO 8859-1 alphabet characters which are
1317 not ASCII characters.
1318 Used for specifying valid identifier characters in <a class="link" href="glib-Lexical-Scanner.html#GScannerConfig" title="GScannerConfig"><span class="type">GScannerConfig</span></a>.
1322 <div class="refsect2" title="enum GTokenType">
1323 <a name="GTokenType"></a><h3>enum GTokenType</h3>
1324 <pre class="programlisting">typedef enum
1328 G_TOKEN_LEFT_PAREN = '(',
1329 G_TOKEN_RIGHT_PAREN = ')',
1330 G_TOKEN_LEFT_CURLY = '{',
1331 G_TOKEN_RIGHT_CURLY = '}',
1332 G_TOKEN_LEFT_BRACE = '[',
1333 G_TOKEN_RIGHT_BRACE = ']',
1334 G_TOKEN_EQUAL_SIGN = '=',
1335 G_TOKEN_COMMA = ',',
1351 G_TOKEN_IDENTIFIER_NULL,
1353 G_TOKEN_COMMENT_SINGLE,
1354 G_TOKEN_COMMENT_MULTI,
1359 The possible types of token returned from each <a class="link" href="glib-Lexical-Scanner.html#g-scanner-get-next-token" title="g_scanner_get_next_token ()"><code class="function">g_scanner_get_next_token()</code></a> call.
1361 <div class="variablelist"><table border="0">
1362 <col align="left" valign="top">
1365 <td><p><a name="G-TOKEN-EOF:CAPS"></a><span class="term"><code class="literal">G_TOKEN_EOF</code></span></p></td>
1366 <td>the end of the file.
1370 <td><p><a name="G-TOKEN-LEFT-PAREN:CAPS"></a><span class="term"><code class="literal">G_TOKEN_LEFT_PAREN</code></span></p></td>
1371 <td>a '(' character.
1375 <td><p><a name="G-TOKEN-LEFT-CURLY:CAPS"></a><span class="term"><code class="literal">G_TOKEN_LEFT_CURLY</code></span></p></td>
1376 <td>a '{' character.
1380 <td><p><a name="G-TOKEN-RIGHT-CURLY:CAPS"></a><span class="term"><code class="literal">G_TOKEN_RIGHT_CURLY</code></span></p></td>
1381 <td>a '}' character.
1388 <div class="refsect2" title="union GTokenValue">
1389 <a name="GTokenValue"></a><h3>union GTokenValue</h3>
1390 <pre class="programlisting">union GTokenValue
1393 gchar *v_identifier;
1407 A union holding the value of the token.
1411 <div class="refsect2" title="enum GErrorType">
1412 <a name="GErrorType"></a><h3>enum GErrorType</h3>
1413 <pre class="programlisting">typedef enum
1417 G_ERR_UNEXP_EOF_IN_STRING,
1418 G_ERR_UNEXP_EOF_IN_COMMENT,
1419 G_ERR_NON_DIGIT_IN_CONST,
1422 G_ERR_FLOAT_MALFORMED
1426 The possible errors, used in the <em class="structfield"><code>v_error</code></em> field
1427 of <a class="link" href="glib-Lexical-Scanner.html#GTokenValue" title="union GTokenValue"><span class="type">GTokenValue</span></a>, when the token is a <span class="type">G_TOKEN_ERROR</span>.
1429 <div class="variablelist"><table border="0">
1430 <col align="left" valign="top">
1433 <td><p><a name="G-ERR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">G_ERR_UNKNOWN</code></span></p></td>
1438 <td><p><a name="G-ERR-UNEXP-EOF:CAPS"></a><span class="term"><code class="literal">G_ERR_UNEXP_EOF</code></span></p></td>
1439 <td>unexpected end of file.
1443 <td><p><a name="G-ERR-UNEXP-EOF-IN-STRING:CAPS"></a><span class="term"><code class="literal">G_ERR_UNEXP_EOF_IN_STRING</code></span></p></td>
1444 <td>unterminated string constant.
1448 <td><p><a name="G-ERR-UNEXP-EOF-IN-COMMENT:CAPS"></a><span class="term"><code class="literal">G_ERR_UNEXP_EOF_IN_COMMENT</code></span></p></td>
1449 <td>unterminated comment.
1453 <td><p><a name="G-ERR-NON-DIGIT-IN-CONST:CAPS"></a><span class="term"><code class="literal">G_ERR_NON_DIGIT_IN_CONST</code></span></p></td>
1454 <td>non-digit character in a number.
1458 <td><p><a name="G-ERR-DIGIT-RADIX:CAPS"></a><span class="term"><code class="literal">G_ERR_DIGIT_RADIX</code></span></p></td>
1459 <td>digit beyond radix in a number.
1463 <td><p><a name="G-ERR-FLOAT-RADIX:CAPS"></a><span class="term"><code class="literal">G_ERR_FLOAT_RADIX</code></span></p></td>
1464 <td>non-decimal floating point number.
1468 <td><p><a name="G-ERR-FLOAT-MALFORMED:CAPS"></a><span class="term"><code class="literal">G_ERR_FLOAT_MALFORMED</code></span></p></td>
1469 <td>malformed floating point number.
1477 <div class="footer">
1479 Generated by GTK-Doc V1.13</div>