[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to m4/m4/symtab.c,v
From: |
Eric Blake |
Subject: |
Changes to m4/m4/symtab.c,v |
Date: |
Fri, 28 Jul 2006 14:06:12 +0000 |
CVSROOT: /sources/m4
Module name: m4
Changes by: Eric Blake <ericb> 06/07/28 14:06:11
Index: m4/symtab.c
===================================================================
RCS file: /sources/m4/m4/m4/symtab.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- m4/symtab.c 22 Jul 2006 19:23:04 -0000 1.54
+++ m4/symtab.c 28 Jul 2006 14:06:11 -0000 1.55
@@ -471,6 +471,14 @@
return (value->type == M4_SYMBOL_FUNC);
}
+#undef m4_is_symbol_value_placeholder
+bool
+m4_is_symbol_value_placeholder (m4_symbol_value *value)
+{
+ assert (value);
+ return (value->type == M4_SYMBOL_PLACEHOLDER);
+}
+
#undef m4_is_symbol_value_void
bool
m4_is_symbol_value_void (m4_symbol_value *value)
@@ -483,7 +491,7 @@
char *
m4_get_symbol_value_text (m4_symbol_value *value)
{
- assert (value);
+ assert (value && value->type == M4_SYMBOL_TEXT);
return value->u.text;
}
@@ -491,10 +499,18 @@
m4_builtin_func *
m4_get_symbol_value_func (m4_symbol_value *value)
{
- assert (value);
+ assert (value && value->type == M4_SYMBOL_FUNC);
return value->u.func;
}
+#undef m4_get_symbol_value_placeholder
+char *
+m4_get_symbol_value_placeholder (m4_symbol_value *value)
+{
+ assert (value && value->type == M4_SYMBOL_PLACEHOLDER);
+ return value->u.text;
+}
+
#undef m4_set_symbol_value_text
void
m4_set_symbol_value_text (m4_symbol_value *value, char *text)
@@ -517,6 +533,17 @@
value->u.func = func;
}
+#undef m4_set_symbol_value_placeholder
+void
+m4_set_symbol_value_placeholder (m4_symbol_value *value, char *text)
+{
+ assert (value);
+ assert (text);
+
+ value->type = M4_SYMBOL_PLACEHOLDER;
+ value->u.text = text;
+}
+
#ifdef DEBUG_SYM
@@ -530,7 +557,8 @@
return symtab_apply (symtab, dump_symbol_CB, NULL);
}
-static void *dump_symbol_CB (m4_symbol_table *symtab, const char *name,
+static void *
+dump_symbol_CB (m4_symbol_table *symtab, const char *name,
m4_symbol *symbol, void *ignored)
{
m4_symbol_value *value = m4_get_symbol_value (symbol);
@@ -558,6 +586,10 @@
fprintf (stderr, "<%s>",
bp ? bp->name : "!ERROR!");
break;
+ case M4_SYMBOL_PLACEHOLDER:
+ fprintf (stderr, "<placeholder for %s>",
+ m4_get_symbol_placeholder (symbol));
+ break;
case M4_SYMBOL_VOID:
fputs ("<!VOID!>", stderr);
break;