OSDN Git Service

objcp:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Feb 2011 10:28:45 +0000 (10:28 +0000)
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Feb 2011 10:28:45 +0000 (10:28 +0000)
* plugin/parser.h: Add arguments to all plugins.
cp:
* parser.c (cp_parser_primary_expression): Add arguments to all the plugins.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170105 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/objcp/ChangeLog
gcc/objcp/plugin/parser.h

index 806c770..74f460e 100644 (file)
@@ -1,5 +1,6 @@
 2011-02-13  Mike Stump  <mikestump@comcast.net>
 
+       * parser.c (cp_parser_primary_expression): Add arguments to all the plugins.
        * lex.c: Plugify.
        * Make-lang.in (objcp/plugin/lex.h): Likewise.
        * Make-lang.in (cp/parser.o): Move c-family/c-objc.h dependancy
index ecdc66c..b6541cb 100644 (file)
@@ -3671,11 +3671,11 @@ cp_parser_primary_expression (cp_parser *parser,
       }
 
     case CPP_OPEN_SQUARE:
-      PLUGIN_PRIMARY_EXPRESSION_3(parser);
+      PLUGIN_PRIMARY_EXPRESSION_3 (parser);
       maybe_warn_cpp0x (CPP0X_LAMBDA_EXPR);
       return cp_parser_lambda_expression (parser);
 
-    PLUGIN_PRIMARY_EXPRESSION_2(parser, cp_parser_error)
+    PLUGIN_PRIMARY_EXPRESSION_2 (parser, cp_parser_error)
 
     case CPP_KEYWORD:
       switch (token->keyword)
@@ -3806,7 +3806,7 @@ cp_parser_primary_expression (cp_parser *parser,
        case RID_IS_LITERAL_TYPE:
          return cp_parser_trait_expr (parser, token->keyword);
 
-       PLUGIN_PRIMARY_EXPRESSION_1(parser)
+       PLUGIN_PRIMARY_EXPRESSION_1 (parser)
 
        case RID_TEMPLATE:
          if (parser->in_function_body
@@ -9401,7 +9401,7 @@ cp_parser_declaration (cp_parser* parser)
   else if (token1.keyword == RID_INLINE
           && token2.keyword == RID_NAMESPACE)
     cp_parser_namespace_definition (parser);
-  PLUGIN_DECLARATION
+  PLUGIN_DECLARATION (token1, attributes)
   /* We must have either a block declaration or a function
      definition.  */
   else
@@ -12800,7 +12800,7 @@ cp_parser_simple_type_specifier (cp_parser* parser,
 
   if (type && type != error_mark_node)
     {
-      PLUGIN_SIMPLE_TYPE_SPECIFIER;
+      PLUGIN_SIMPLE_TYPE_SPECIFIER (parser, type, decl_specs);
 
       /* There is no valid C++ program where a non-template type is
         followed by a "<".  That usually indicates that the user
@@ -12876,11 +12876,11 @@ cp_parser_nonclass_name (cp_parser* parser)
   /* Look up the type-name.  */
   type_decl = cp_parser_lookup_name_simple (parser, identifier, token->location);
 
-  PLUGIN_NONCLASS_NAME1;
+  PLUGIN_NONCLASS_NAME1 (parser, type_decl, identifier);
 
   /* Issue an error if we did not find a type-name.  */
   if (TREE_CODE (type_decl) != TYPE_DECL
-      PLUGIN_NONCLASS_NAME)
+      PLUGIN_NONCLASS_NAME (parser, type_decl, cp_lexer_peek_token))
     {
       if (!cp_parser_simulate_error (parser))
        cp_parser_name_lookup_error (parser, identifier, type_decl,
@@ -16724,7 +16724,7 @@ cp_parser_class_name (cp_parser *parser,
   else if (TREE_CODE (decl) != TYPE_DECL
           || TREE_TYPE (decl) == error_mark_node
           || !MAYBE_CLASS_TYPE_P (TREE_TYPE (decl))
-          PLUGIN_CLASS_NAME)
+          PLUGIN_CLASS_NAME (parser, cp_lexer_peek_token, CPP_DOT))
     decl = error_mark_node;
 
   if (decl == error_mark_node)
@@ -17585,7 +17585,8 @@ cp_parser_member_declaration (cp_parser* parser)
       return;
     }
 
-  PLUGIN_MEMBER_DECLARATION;
+  PLUGIN_MEMBER_DECLARATION (parser, cp_lexer_next_token_is_keyword,
+                            finish_member_declaration);
 
   /* If the next token is `static_assert' we have a static assertion.  */
   if (cp_lexer_next_token_is_keyword (parser->lexer, RID_STATIC_ASSERT))
index 92f6b7d..1100daa 100644 (file)
@@ -1,5 +1,6 @@
 2011-02-13  Mike Stump  <mikestump@comcast.net>
 
+       * plugin/parser.h: Add arguments to all plugins.
        * plugin/lex.h: Plugify.
 
 2011-02-12  Mike Stump  <mikestump@comcast.net>
index e41e30b..a834454 100644 (file)
@@ -127,7 +127,7 @@ static tree cp_parser_objc_struct_declaration
    break;@)
 
 
-#define PLUGIN_DECLARATION @(
+#define PLUGIN_DECLARATION(token1, attributes) @(
   /* Objective-C++ declaration/definition.  */
   else if (c_dialect_objc () && OBJC_IS_AT_KEYWORD (token1.keyword))
     cp_parser_objc_declaration (parser, NULL_TREE);
@@ -136,7 +136,7 @@ static tree cp_parser_objc_struct_declaration
           && cp_parser_objc_valid_prefix_attributes (parser, &attributes))
     cp_parser_objc_declaration (parser, attributes);@)
 
-#define PLUGIN_SIMPLE_TYPE_SPECIFIER @(
+#define PLUGIN_SIMPLE_TYPE_SPECIFIER(parser, type, decl_specs)  @(
   do {
     /* See if TYPE is an Objective-C type, and if so, parse and
        accept any protocol references following it.  Do this before
@@ -160,7 +160,7 @@ static tree cp_parser_objc_struct_declaration
   } while (0)@)
 
 
-#define PLUGIN_NONCLASS_NAME1 @(
+#define PLUGIN_NONCLASS_NAME1(parser, type_decl, identifier) @(
   do {
     if (TREE_CODE (type_decl) != TYPE_DECL
        && (objc_is_id (identifier) || objc_is_class_name (identifier)))
@@ -173,7 +173,7 @@ static tree cp_parser_objc_struct_declaration
       }
   } while (0)@)
 
-#define PLUGIN_NONCLASS_NAME @(
+#define PLUGIN_NONCLASS_NAME(parser, type_decl, cp_lexer_peek_token) @(
   /* In Objective-C, we have the complication that class names are
      normally type names and start declarations (eg, the
      "NSObject" in "NSObject *object;"), but can be used in an
@@ -183,14 +183,14 @@ static tree cp_parser_objc_struct_declaration
   || (objc_is_class_name (TREE_TYPE (type_decl))
       && cp_lexer_peek_token (parser->lexer)->type == CPP_DOT)@)
 
-#define PLUGIN_CLASS_NAME @(
+#define PLUGIN_CLASS_NAME(parser, cp_lexer_peek_token, CPP_DOT) @(
   /* In Objective-C 2.0, a classname followed by '.' starts a
      dot-syntax expression, and it's not a type-name.  */
   || (c_dialect_objc ()
       && cp_lexer_peek_token (parser->lexer)->type == CPP_DOT 
       && objc_is_class_name (decl))@)
 
-#define PLUGIN_MEMBER_DECLARATION @(
+#define PLUGIN_MEMBER_DECLARATION(parser, cp_lexer_next_token_is_keyword, finish_member_declaration) @(
   do {
     /* Check for @defs.  */
     if (cp_lexer_next_token_is_keyword (parser->lexer, RID_AT_DEFS))
@@ -217,11 +217,11 @@ static tree cp_parser_objc_struct_declaration
 #define PLUGIN_PRIMARY_EXPRESSION(parser, decl, cp_lexer_consume_token, cp_lexer_peek_token)
 #define PLUGIN_TOKEN_STARTS_CAST_EXPR
 #define PLUGIN_STATEMENT
-#define PLUGIN_DECLARATION
-#define PLUGIN_SIMPLE_TYPE_SPECIFIER
-#define PLUGIN_NONCLASS_NAME1
-#define PLUGIN_NONCLASS_NAME
-#define PLUGIN_CLASS_NAME
-#define PLUGIN_MEMBER_DECLARATION
+#define PLUGIN_DECLARATION(token1, attributes)
+#define PLUGIN_SIMPLE_TYPE_SPECIFIER(parser, type, decl_specs)
+#define PLUGIN_NONCLASS_NAME1(parser, type_decl, identifier)
+#define PLUGIN_NONCLASS_NAME(parser, type_decl, cp_lexer_peek_token) 
+#define PLUGIN_CLASS_NAME(parser, cp_lexer_peek_token, CPP_DOT)
+#define PLUGIN_MEMBER_DECLARATION(parser, cp_lexer_next_token_is_keyword, finish_member_declaration)
 
 #endif