[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/8] parser: factor handling of type tags
From: |
Akim Demaille |
Subject: |
[PATCH 4/8] parser: factor handling of type tags |
Date: |
Mon, 23 Jul 2012 14:06:03 +0200 |
* src/parse-gram.y: Now that <*> and <> are processed like regular
tags, let...
(tag): handle them.
---
src/parse-gram.y | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/parse-gram.y b/src/parse-gram.y
index 5c70208..efaa3d1 100644
--- a/src/parse-gram.y
+++ b/src/parse-gram.y
@@ -196,12 +196,12 @@ static char const *char_name (char);
%printer { fprintf (stderr, "{\n%s\n}", $$); }
braceless content.opt "{...}" "%{...%}" EPILOGUE
-%type <uniqstr> BRACKETED_ID ID ID_COLON PERCENT_FLAG TAG variable
+%type <uniqstr> BRACKETED_ID ID ID_COLON PERCENT_FLAG TAG tag variable
%printer { fputs ($$, stderr); } <uniqstr>
%printer { fprintf (stderr, "[%s]", $$); } BRACKETED_ID
%printer { fprintf (stderr, "%s:", $$); } ID_COLON
%printer { fprintf (stderr, "%%%s", $$); } PERCENT_FLAG
-%printer { fprintf (stderr, "<%s>", $$); } TAG
+%printer { fprintf (stderr, "<%s>", $$); } TAG tag
%type <integer> INT
%printer { fprintf (stderr, "%d", $$); } <integer>
@@ -390,7 +390,7 @@ grammar_declaration:
{
symbol_list *list;
for (list = $3; list; list = list->next)
- symbol_list_code_props_set (list, destructor, @2, $2);
+ symbol_list_code_props_set (list, $1, @2, $2);
symbol_list_free ($3);
}
| "%printer" "{...}" generic_symlist
@@ -522,9 +522,13 @@ generic_symlist:
generic_symlist_item:
symbol { $$ = symbol_list_sym_new ($1, @1); }
-| TAG { $$ = symbol_list_type_new ($1, @1); }
-| "<*>" { $$ = symbol_list_type_new ("*", @1); }
-| "<>" { $$ = symbol_list_type_new ("", @1); }
+| tag { $$ = symbol_list_type_new ($1, @1); }
+;
+
+tag:
+ TAG
+| "<*>" { $$ = uniqstr_new ("*"); }
+| "<>" { $$ = uniqstr_new (""); }
;
/* One token definition. */
--
1.7.11.2
- [PATCH 0/8] {maint} factor %printer and %destructor, Akim Demaille, 2012/07/23
- [PATCH 5/8] parser: factor the handling of code_props, Akim Demaille, 2012/07/23
- [PATCH 3/8] regen., Akim Demaille, 2012/07/23
- [PATCH 1/8] allow modification on retrieved code_props., Akim Demaille, 2012/07/23
- [PATCH 6/8] parser: fix %printer usage., Akim Demaille, 2012/07/23
- [PATCH 4/8] parser: factor handling of type tags,
Akim Demaille <=
- [PATCH 7/8] space changes., Akim Demaille, 2012/07/23
- [PATCH 2/8] simplify the handling of <> and <*>'s code_props., Akim Demaille, 2012/07/23
- [PATCH 8/8] regen., Akim Demaille, 2012/07/23