m4-commit
[Top][All Lists]
Advanced

[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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]