27 |
static void issue_expect_message (int expected); |
static void issue_expect_message (int expected); |
28 |
static int produce_char_dump (char *buf, int ch); |
static int produce_char_dump (char *buf, int ch); |
29 |
static void produce_syntax_dump (FILE *file, m4_syntax_table *syntax, |
static void produce_syntax_dump (FILE *file, m4_syntax_table *syntax, |
30 |
char ch, int mask); |
char ch); |
31 |
static void produce_module_dump (FILE *file, lt_dlhandle handle); |
static void produce_module_dump (FILE *file, lt_dlhandle handle); |
32 |
static void produce_symbol_dump (m4 *context, FILE *file, |
static void produce_symbol_dump (m4 *context, FILE *file, |
33 |
m4_symbol_table *symtab); |
m4_symbol_table *symtab); |
79 |
#define MAX_CHAR_LENGTH 4 /* '\377' -> 4 characters */ |
#define MAX_CHAR_LENGTH 4 /* '\377' -> 4 characters */ |
80 |
|
|
81 |
static void |
static void |
82 |
produce_syntax_dump (FILE *file, m4_syntax_table *syntax, char ch, int mask) |
produce_syntax_dump (FILE *file, m4_syntax_table *syntax, char ch) |
83 |
{ |
{ |
84 |
char buf[1+ MAX_CHAR_LENGTH * sizeof (m4_syntax_table)]; |
char buf[1+ MAX_CHAR_LENGTH * sizeof (m4_syntax_table)]; |
85 |
int code = m4_syntax_code (ch); |
int code = m4_syntax_code (ch); |
93 |
|
|
94 |
for (i = 1; i < 256; ++i) |
for (i = 1; i < 256; ++i) |
95 |
{ |
{ |
96 |
if ((mask && ((syntax->table[i] & mask) == code)) |
if (m4_has_syntax (syntax, i, code)) |
|
|| (!mask && ((syntax->table[i] & code) == code))) |
|
97 |
{ |
{ |
98 |
offset += produce_char_dump (buf + offset, i); |
offset += produce_char_dump (buf + offset, i); |
99 |
++count; |
++count; |
235 |
|
|
236 |
/* Dump syntax table. */ |
/* Dump syntax table. */ |
237 |
|
|
238 |
produce_syntax_dump (file, M4SYNTAX, 'I', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, 'I'); |
239 |
produce_syntax_dump (file, M4SYNTAX, 'S', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, 'S'); |
240 |
produce_syntax_dump (file, M4SYNTAX, '(', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, '('); |
241 |
produce_syntax_dump (file, M4SYNTAX, ')', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, ')'); |
242 |
produce_syntax_dump (file, M4SYNTAX, ',', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, ','); |
243 |
produce_syntax_dump (file, M4SYNTAX, '$', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, '$'); |
244 |
produce_syntax_dump (file, M4SYNTAX, 'A', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, 'A'); |
245 |
produce_syntax_dump (file, M4SYNTAX, '@', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, '@'); |
246 |
produce_syntax_dump (file, M4SYNTAX, 'O', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, 'O'); |
247 |
|
|
248 |
produce_syntax_dump (file, M4SYNTAX, 'W', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, 'W'); |
249 |
produce_syntax_dump (file, M4SYNTAX, 'D', M4_SYNTAX_VALUE); |
produce_syntax_dump (file, M4SYNTAX, 'D'); |
250 |
|
|
251 |
produce_syntax_dump (file, M4SYNTAX, 'L', 0); |
produce_syntax_dump (file, M4SYNTAX, 'L'); |
252 |
produce_syntax_dump (file, M4SYNTAX, 'R', 0); |
produce_syntax_dump (file, M4SYNTAX, 'R'); |
253 |
produce_syntax_dump (file, M4SYNTAX, 'B', 0); |
produce_syntax_dump (file, M4SYNTAX, 'B'); |
254 |
produce_syntax_dump (file, M4SYNTAX, 'E', 0); |
produce_syntax_dump (file, M4SYNTAX, 'E'); |
255 |
|
|
256 |
/* Dump all loaded modules. */ |
/* Dump all loaded modules. */ |
257 |
produce_module_dump (file, lt_dlhandle_next (0)); |
produce_module_dump (file, lt_dlhandle_next (0)); |