]> git.saurik.com Git - bison.git/blobdiff - src/parse-gram.y
* src/symtab.h, src/symtab.c (symbol_t): printer and
[bison.git] / src / parse-gram.y
index c3250ccf7806d1cf96310eaf6524ff555a9226d6..06a32c31da51c1ab14623b41e030c59d3b4c0b22 100644 (file)
@@ -103,9 +103,13 @@ braced_code_t current_braced_code = action_braced_code;
 
 %token PERCENT_TOKEN       "%token"
 %token PERCENT_NTERM       "%nterm"
+
 %token PERCENT_TYPE        "%type"
 %token PERCENT_DESTRUCTOR  "%destructor"
+%token PERCENT_PRINTER     "%printer"
+
 %token PERCENT_UNION       "%union"
+
 %token PERCENT_LEFT        "%left"
 %token PERCENT_RIGHT       "%right"
 %token PERCENT_NONASSOC    "%nonassoc"
@@ -212,6 +216,16 @@ grammar_declaration:
       symbol_list_free ($4);
       current_braced_code = action_braced_code;
     }
+| "%printer"
+    { current_braced_code = printer_braced_code; }
+  BRACED_CODE symbols.1
+    {
+      symbol_list_t *list;
+      for (list = $4; list; list = list->next)
+       symbol_printer_set (list->sym, $3, list->location);
+      symbol_list_free ($4);
+      current_braced_code = action_braced_code;
+    }
 ;
 
 symbol_declaration: