Title: [1111] trunk/qdox/src/grammar/parser.y: Use Formal Parameters according to JLS
Revision
1111
Author
rfscholte
Date
2011-03-08 14:35:16 -0600 (Tue, 08 Mar 2011)

Log Message

Use Formal Parameters according to JLS 

Modified Paths


Diff

Modified: trunk/qdox/src/grammar/parser.y (1110 => 1111)

--- trunk/qdox/src/grammar/parser.y	2011-03-07 21:48:23 UTC (rev 1110)
+++ trunk/qdox/src/grammar/parser.y	2011-03-08 20:35:16 UTC (rev 1111)
@@ -65,7 +65,6 @@
 %type <annoval> PostfixExpression CastExpression
 %type <ival> dims Dims_opt
 %type <sval> fullidentifier typedeclspecifier typename memberend
-%type <bval> varargs
 %type <type> type arrayidentifier classtype typearg
 
 %%
@@ -661,7 +660,7 @@
              $$ = "";
            };
 
-methoddef: PARENOPEN opt_params PARENCLOSE;
+methoddef: PARENOPEN FormalParameterList_opt PARENCLOSE;
 
 // 8.4.6 Method Throws
 Throws_opt:
@@ -675,32 +674,43 @@
                    {
                      mth.exceptions.add($3);
                    };
+// 8.4.1 Formal Parameters
+FormalParameterList_opt:
+                       | FormalParameterList;
+                       
+FormalParameterList: LastFormalParameter
+                   | FormalParameters COMMA LastFormalParameter;
 
-opt_params: | paramlist;
+FormalParameters: FormalParameter
+                | FormalParameters COMMA FormalParameter;
+                
+FormalParameter:  VariableModifiers_opt type /* =Type */ arrayidentifier /* =VariableDeclaratorId */
+                  {
+                    param.name = $3.name;
+                    param.type = $2;
+                    param.dimensions = $3.dimensions;
+                    param.isVarArgs = false;
+                    param.modifiers.addAll(modifiers); modifiers.clear();
+                    builder.addParameter(param);
+                    param = new FieldDef();
+                  };
 
-paramlist: 
-    param | 
-    paramlist COMMA param;
+LastFormalParameter: VariableModifiers_opt type /* =Type */ DOTDOTDOT arrayidentifier  /* =VariableDeclaratorId */
+                     {
+                       param.name = $4.name; 
+                       param.type = $2;
+                       param.dimensions = $4.dimensions;
+                       param.isVarArgs = true;
+                       param.modifiers.addAll(modifiers); modifiers.clear();
+                       builder.addParameter(param);
+                       param = new FieldDef();
+                     };
+                   | FormalParameter;
 
-param: 
-    opt_parammodifiers type varargs arrayidentifier {
-        param.name = $4.name;
-        param.type = $2;
-        param.dimensions = $4.dimensions;
-        param.isVarArgs = $3;
-        param.modifiers.addAll(modifiers); modifiers.clear();
-        builder.addParameter(param);
-        param = new FieldDef();
-    };
-
-varargs:
-    /* empty */ { $$ = false; } |
-    DOTDOTDOT   { $$ = true; } ;
-
 opt_annotations: | opt_annotations annotation;
 
-opt_parammodifiers: |
-    opt_parammodifiers modifier;
+VariableModifiers_opt: 
+                     | VariableModifiers_opt modifier;
 
 %%
 


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to