[jruby~main:05b38ab8] Handle Arrays better in signature grammar
- From: nicksieger@kenai.com
- To: commits@jruby.kenai.com
- Subject: [jruby~main:05b38ab8] Handle Arrays better in signature grammar
- Date: Thu, 4 Mar 2010 22:37:17 +0000
Project: jruby
Repository: main
Revision: 05b38ab8f40babc2c69b1b4b1d789d113a9d7fb1
Author: nicksieger
Date: 2010-03-04 22:36:46 UTC
Link:
Log Message:
------------
Handle Arrays better in signature grammar
Revisions:
----------
05b38ab8f40babc2c69b1b4b1d789d113a9d7fb1
Modified Paths:
---------------
src/org/jruby/ast/java_signature/MethodSignatureNode.java
src/org/jruby/ast/java_signature/TypeNode.java
src/org/jruby/lexer/JavaSignatureLexer.java
src/org/jruby/parser/JavaSignatureParser.java
src/org/jruby/parser/JavaSignatureParser.y
Added Paths:
------------
src/org/jruby/ast/java_signature/ArrayTypeNode.java
Diffs:
------
diff --git a/src/org/jruby/ast/java_signature/ArrayTypeNode.java
b/src/org/jruby/ast/java_signature/ArrayTypeNode.java
new file mode 100644
index 0000000..50e1fcd
--- /dev/null
+++ b/src/org/jruby/ast/java_signature/ArrayTypeNode.java
@@ -0,0 +1,35 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.jruby.ast.java_signature;
+
+/**
+ *
+ * @author enebo
+ */
+public class ArrayTypeNode extends TypeNode {
+ private final TypeNode typeForArray;
+
+ public ArrayTypeNode(TypeNode typeForArray) {
+ super(null);
+
+ this.typeForArray = typeForArray;
+ }
+
+ @Override
+ public String getName() {
+ return typeForArray.getName() + "[]";
+ }
+
+ @Override
+ public boolean isArray() {
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/src/org/jruby/ast/java_signature/MethodSignatureNode.java
b/src/org/jruby/ast/java_signature/MethodSignatureNode.java
index c785b6b..ea23848 100644
--- a/src/org/jruby/ast/java_signature/MethodSignatureNode.java
+++ b/src/org/jruby/ast/java_signature/MethodSignatureNode.java
@@ -21,7 +21,7 @@ public class MethodSignatureNode {
return name;
}
- public List<ParameterNode> getParameterList() {
+ public List<ParameterNode> getParameters() {
return parameterList;
}
diff --git a/src/org/jruby/ast/java_signature/TypeNode.java
b/src/org/jruby/ast/java_signature/TypeNode.java
index 4bf6a60..b8b0db3 100644
--- a/src/org/jruby/ast/java_signature/TypeNode.java
+++ b/src/org/jruby/ast/java_signature/TypeNode.java
@@ -5,7 +5,6 @@ package org.jruby.ast.java_signature;
*/
public class TypeNode {
protected String name;
- protected boolean isArray = false;
public TypeNode(String name) {
this.name = name;
@@ -32,10 +31,6 @@ public class TypeNode {
}
public boolean isArray() {
- return isArray;
- }
-
- public void setIsArray(boolean isArray) {
- this.isArray = isArray;
+ return false;
}
}
diff --git a/src/org/jruby/lexer/JavaSignatureLexer.java
b/src/org/jruby/lexer/JavaSignatureLexer.java
index 09a026f..34d6e5a 100644
--- a/src/org/jruby/lexer/JavaSignatureLexer.java
+++ b/src/org/jruby/lexer/JavaSignatureLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 3/3/10 2:24 PM */
+/* The following code was generated by JFlex 1.4.3 on 3/4/10 4:27 PM */
package org.jruby.lexer;
@@ -8,7 +8,7 @@ import org.jruby.parser.JavaSignatureParser;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 3/3/10 2:24 PM from the specification file
+ * on 3/4/10 4:27 PM from the specification file
* <tt>src/org/jruby/lexer/JavaSignatureLexer.flex</tt>
*/
public class JavaSignatureLexer {
diff --git a/src/org/jruby/parser/JavaSignatureParser.java
b/src/org/jruby/parser/JavaSignatureParser.java
index 3845cea..1b1ab50 100644
--- a/src/org/jruby/parser/JavaSignatureParser.java
+++ b/src/org/jruby/parser/JavaSignatureParser.java
@@ -10,6 +10,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.jruby.ast.java_signature.ArrayTypeNode;
import org.jruby.ast.java_signature.MethodSignatureNode;
import org.jruby.ast.java_signature.Modifier;
import org.jruby.ast.java_signature.ParameterNode;
@@ -24,7 +25,7 @@ public class JavaSignatureParser {
public static MethodSignatureNode parse(InputStream in) throws
IOException, ParserSyntaxException {
return (MethodSignatureNode)
parser.yyparse(JavaSignatureLexer.create(in));
}
- // line 28 "-"
+ // line 29 "-"
// %token constants
public static final int BOOLEAN = 257;
public static final int BYTE = 258;
@@ -446,289 +447,285 @@ public class JavaSignatureParser {
switch (yyN) {
// ACTIONS_BEGIN
case 4:
- // line 110
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 111
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.BOOLEAN;
}
break;
case 5:
- // line 113
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 114
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.SHORT;
}
break;
case 6:
- // line 116
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 117
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.INT;
}
break;
case 7:
- // line 119
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 120
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.LONG;
}
break;
case 8:
- // line 122
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 123
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.CHAR;
}
break;
case 9:
- // line 125
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 126
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.BOOLEAN;
}
break;
case 10:
- // line 128
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 129
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.FLOAT;
}
break;
case 11:
- // line 131
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 132
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = PrimitiveTypeNode.DOUBLE;
}
break;
case 12:
- // line 136
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 137
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((ReferenceTypeNode)yyVals[0+yyTop]);
}
break;
case 14:
- // line 142
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 143
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((String)yyVals[0+yyTop]);
}
break;
case 15:
- // line 147
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 148
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ReferenceTypeNode(((String)yyVals[0+yyTop]));
}
break;
case 16:
- // line 150
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 151
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((ReferenceTypeNode)yyVals[-4+yyTop]); /* FIXME: Add generics
to ref type*/
}
break;
case 18:
- // line 156
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 157
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((ReferenceTypeNode)yyVals[-2+yyTop]); /* FIXME: Add generics
to ref type*/
}
break;
case 21:
- // line 167
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 168
"src/org/jruby/parser/JavaSignatureParser.y"
{
- yyVal = ((TypeNode)yyVals[-1+yyTop]);
- ((TypeNode)yyVal).setIsArray(true);
+ yyVal = new ArrayTypeNode(((TypeNode)yyVals[-1+yyTop]));
}
break;
case 22:
// line 171
"src/org/jruby/parser/JavaSignatureParser.y"
{
- yyVal = new ReferenceTypeNode(((String)yyVals[-1+yyTop]));
- ((TypeNode)yyVal).setIsArray(true);
+ yyVal = new ArrayTypeNode(new
ReferenceTypeNode(((String)yyVals[-1+yyTop])));
}
break;
case 23:
- // line 175
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 174
"src/org/jruby/parser/JavaSignatureParser.y"
{
- yyVal = ((ReferenceTypeNode)yyVals[-5+yyTop]); /* FIXME: Add generics
to ref type*/
- ((TypeNode)yyVal).setIsArray(true);
+ yyVal = new ArrayTypeNode(((ReferenceTypeNode)yyVals[-5+yyTop])); /*
FIXME: Add generics to ref type*/
}
break;
case 24:
- // line 179
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 177
"src/org/jruby/parser/JavaSignatureParser.y"
{
- yyVal = ((ReferenceTypeNode)yyVals[-3+yyTop]); /* FIXME: Add generics
to ref type*/
- ((TypeNode)yyVal).setIsArray(true);
+ yyVal = new ArrayTypeNode(((ReferenceTypeNode)yyVals[-3+yyTop])); /*
FIXME: Add generics to ref type*/
}
break;
case 25:
- // line 184
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 181
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[0+yyTop]); }
break;
case 26:
- // line 185
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 182
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 27:
- // line 186
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 183
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 28:
- // line 188
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 185
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]); }
break;
case 29:
- // line 189
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 186
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 30:
- // line 190
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 187
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 31:
- // line 192
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 189
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]); }
break;
case 32:
- // line 193
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 190
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 33:
- // line 194
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 191
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 34:
- // line 196
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 193
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]); }
break;
case 35:
- // line 197
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 194
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 36:
- // line 198
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 195
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 37:
- // line 200
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 197
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((TypeNode)yyVals[-1+yyTop]); }
break;
case 38:
- // line 201
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 198
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((ReferenceTypeNode)yyVals[-2+yyTop]); }
break;
case 39:
- // line 203
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 200
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((TypeNode)yyVals[-1+yyTop]); }
break;
case 40:
- // line 204
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 201
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((ReferenceTypeNode)yyVals[-2+yyTop]); }
break;
case 41:
- // line 206
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 203
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((TypeNode)yyVals[-1+yyTop]); }
break;
case 60:
- // line 232
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 229
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ArrayList<Modifier>();
((List)yyVal).add(((Modifier)yyVals[0+yyTop]));
}
break;
case 61:
- // line 236
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 233
"src/org/jruby/parser/JavaSignatureParser.y"
{
((List)yyVals[-1+yyTop]).add(((Modifier)yyVals[0+yyTop]));
}
break;
case 62:
- // line 241
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 238
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = new ArrayList<Modifier>(); }
break;
case 63:
- // line 244
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 241
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.PUBLIC; }
break;
case 64:
- // line 245
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 242
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.PROTECTED; }
break;
case 65:
- // line 246
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 243
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.PRIVATE; }
break;
case 66:
- // line 247
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 244
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.STATIC; }
break;
case 67:
- // line 248
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 245
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.ABSTRACT; }
break;
case 68:
- // line 249
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 246
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.FINAL; }
break;
case 69:
- // line 250
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 247
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.NATIVE; }
break;
case 70:
- // line 251
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 248
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.SYNCHRONIZED; }
break;
case 71:
- // line 252
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 249
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.TRANSIENT; }
break;
case 72:
- // line 253
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 250
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.VOLATILE; }
break;
case 73:
- // line 254
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 251
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = Modifier.STRICTFP; }
break;
case 74:
- // line 257
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 254
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[0+yyTop]); }
break;
case 75:
- // line 258
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 255
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]) + "." + ((String)yyVals[0+yyTop]); }
break;
case 76:
- // line 261
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 258
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = null; }
break;
case 77:
- // line 261
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 258
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = null; }
break;
case 78:
- // line 264
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 261
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((List)yyVals[0+yyTop]); }
break;
case 79:
- // line 265
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 262
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = new ArrayList<TypeNode>(); }
break;
case 80:
- // line 268
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 265
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ArrayList<TypeNode>();
((List)yyVal).add(((ReferenceTypeNode)yyVals[0+yyTop]));
}
break;
case 81:
- // line 272
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 269
"src/org/jruby/parser/JavaSignatureParser.y"
{
((List)yyVals[-2+yyTop]).add(((ReferenceTypeNode)yyVals[0+yyTop]));
}
break;
case 82:
- // line 277
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 274
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new
MethodSignatureNode(((String)yyVals[-3+yyTop]), ((List)yyVals[-1+yyTop]));
}
break;
case 84:
- // line 283
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 280
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = new ArrayList<ParameterNode>(); }
break;
case 85:
- // line 286
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 283
"src/org/jruby/parser/JavaSignatureParser.y"
{
List<ParameterNode> list = new
ArrayList<ParameterNode>();
list.add(((ParameterNode)yyVals[0+yyTop]));
@@ -736,101 +733,101 @@ case 85:
}
break;
case 86:
- // line 291
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 288
"src/org/jruby/parser/JavaSignatureParser.y"
{
((List)yyVals[-2+yyTop]).add(((ParameterNode)yyVals[0+yyTop]));
}
break;
case 87:
- // line 296
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 293
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[-1+yyTop]),
((String)yyVals[0+yyTop]));
}
break;
case 88:
- // line 299
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 296
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[0+yyTop]),
null);
}
break;
case 89:
- // line 302
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 299
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[-1+yyTop]),
((String)yyVals[0+yyTop]), true);
}
break;
case 90:
- // line 305
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 302
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[0+yyTop]),
null, true);
}
break;
case 91:
- // line 308
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 305
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[-2+yyTop]),
((String)yyVals[0+yyTop]), false, true);
}
break;
case 92:
- // line 311
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 308
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[-1+yyTop]),
null, false, true);
}
break;
case 93:
- // line 314
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 311
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[-2+yyTop]),
((String)yyVals[0+yyTop]), true, true);
}
break;
case 94:
- // line 317
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 314
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = new ParameterNode(((TypeNode)yyVals[-1+yyTop]),
null, true, true);
}
break;
case 95:
- // line 322
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 319
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((String)yyVals[0+yyTop]);
}
break;
case 96:
- // line 325
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 322
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((String)yyVal) + "[]";
}
break;
case 102:
- // line 337
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 334
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]); }
break;
case 104:
- // line 340
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 337
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]); }
break;
case 105:
- // line 341
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 338
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 108:
- // line 345
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 342
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-2+yyTop]); }
break;
case 114:
- // line 353
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 350
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]);}
break;
case 115:
- // line 355
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 352
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = ((String)yyVals[-1+yyTop]); }
break;
case 116:
- // line 357
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 354
"src/org/jruby/parser/JavaSignatureParser.y"
{ yyVal = null; }
break;
case 117:
- // line 359
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 356
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((MethodSignatureNode)yyVals[-1+yyTop]);
((MethodSignatureNode)yyVal).setModifiers(((List)yyVals[-3+yyTop]));
@@ -839,7 +836,7 @@ case 117:
}
break;
case 118:
- // line 365
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 362
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((MethodSignatureNode)yyVals[-1+yyTop]);
((MethodSignatureNode)yyVal).setModifiers(((List)yyVals[-5+yyTop]));
@@ -848,7 +845,7 @@ case 118:
}
break;
case 119:
- // line 371
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 368
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((MethodSignatureNode)yyVals[-1+yyTop]);
((MethodSignatureNode)yyVal).setModifiers(((List)yyVals[-3+yyTop]));
@@ -857,7 +854,7 @@ case 119:
}
break;
case 120:
- // line 377
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 374
"src/org/jruby/parser/JavaSignatureParser.y"
{
yyVal = ((MethodSignatureNode)yyVals[-1+yyTop]);
((MethodSignatureNode)yyVal).setModifiers(((List)yyVals[-5+yyTop]));
@@ -865,7 +862,7 @@ case 120:
((MethodSignatureNode)yyVal).setThrows(((List)yyVals[0+yyTop]));
}
break;
- // line 1029 "-"
+ // line 1026 "-"
// ACTIONS_END
}
yyTop -= yyLen[yyN];
@@ -893,7 +890,7 @@ case 120:
}
// ACTION_BODIES
- // line 385
"src/org/jruby/parser/JavaSignatureParser.y"
+ // line 382
"src/org/jruby/parser/JavaSignatureParser.y"
}
- // line 1065 "-"
+ // line 1062 "-"
diff --git a/src/org/jruby/parser/JavaSignatureParser.y
b/src/org/jruby/parser/JavaSignatureParser.y
index a9956f2..461d8a1 100644
--- a/src/org/jruby/parser/JavaSignatureParser.y
+++ b/src/org/jruby/parser/JavaSignatureParser.y
@@ -22,6 +22,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.jruby.ast.java_signature.ArrayTypeNode;
import org.jruby.ast.java_signature.MethodSignatureNode;
import org.jruby.ast.java_signature.Modifier;
import org.jruby.ast.java_signature.ParameterNode;
@@ -165,20 +166,16 @@ interface_type : class_or_interface_type
// TypeNode
array_type : primitive_type dims {
- $$ = $1;
- $<TypeNode>$.setIsArray(true);
+ $$ = new ArrayTypeNode($1);
}
| name dims {
- $$ = new ReferenceTypeNode($1);
- $<TypeNode>$.setIsArray(true);
+ $$ = new ArrayTypeNode(new ReferenceTypeNode($1));
}
| class_or_interface LT type_argument_list_1 DOT name dims {
- $$ = $1; // FIXME: Add generics to ref type
- $<TypeNode>$.setIsArray(true);
+ $$ = new ArrayTypeNode($1); // FIXME: Add generics to ref type
}
| class_or_interface LT type_argument_list_1 dims {
- $$ = $1; // FIXME: Add generics to ref type
- $<TypeNode>$.setIsArray(true);
+ $$ = new ArrayTypeNode($1); // FIXME: Add generics to ref type
}
wildcard : QUESTION { $$ = $1; }// FIXME:
|
[jruby~main:05b38ab8] Handle Arrays better in signature grammar |
nicksieger | 03/04/2010 |





