Add missing generic type arguments

This commit is contained in:
Sam Harwell 2012-12-14 09:34:20 -06:00
parent 51dadaf7e8
commit ac55cf3990
5 changed files with 24 additions and 28 deletions

View File

@ -130,10 +130,13 @@ package org.antlr.v4.parse;
import org.antlr.v4.tool.*;
import org.antlr.v4.tool.ast.*;
import java.util.ArrayDeque;
import java.util.Deque;
}
@members {
Stack paraphrases = new Stack();
Deque<String> paraphrases = new ArrayDeque<String>();
public void grammarError(ErrorType etype, org.antlr.runtime.Token token, Object... args) { }
}

View File

@ -60,26 +60,21 @@ public class TestASTStructure {
throws Exception
{
ANTLRStringStream is = new ANTLRStringStream(input);
Class lexerClass = Class.forName(lexerClassName);
Class[] lexArgTypes = new Class[]{CharStream.class};
Constructor lexConstructor = lexerClass.getConstructor(lexArgTypes);
Object[] lexArgs = new Object[]{is};
TokenSource lexer = (TokenSource)lexConstructor.newInstance(lexArgs);
Class<? extends TokenSource> lexerClass = Class.forName(lexerClassName).asSubclass(TokenSource.class);
Constructor<? extends TokenSource> lexConstructor = lexerClass.getConstructor(CharStream.class);
TokenSource lexer = lexConstructor.newInstance(is);
is.setLine(scriptLine);
CommonTokenStream tokens = new CommonTokenStream(lexer);
Class parserClass = Class.forName(parserClassName);
Class[] parArgTypes = new Class[]{TokenStream.class};
Constructor parConstructor = parserClass.getConstructor(parArgTypes);
Object[] parArgs = new Object[]{tokens};
Parser parser = (Parser)parConstructor.newInstance(parArgs);
Class<? extends Parser> parserClass = Class.forName(parserClassName).asSubclass(Parser.class);
Constructor<? extends Parser> parConstructor = parserClass.getConstructor(TokenStream.class);
Parser parser = parConstructor.newInstance(tokens);
// set up customized tree adaptor if necessary
if ( adaptorClassName!=null ) {
parArgTypes = new Class[]{TreeAdaptor.class};
Method m = parserClass.getMethod("setTreeAdaptor", parArgTypes);
Class adaptorClass = Class.forName(adaptorClassName);
Method m = parserClass.getMethod("setTreeAdaptor", TreeAdaptor.class);
Class<? extends TreeAdaptor> adaptorClass = Class.forName(adaptorClassName).asSubclass(TreeAdaptor.class);
m.invoke(parser, adaptorClass.newInstance());
}

View File

@ -370,7 +370,6 @@ public class TestIntervalSet extends BaseTest {
s.add(50,55);
s.add(5,5);
String expecting = "[5, 20, 21, 22, 23, 24, 25, 50, 51, 52, 53, 54, 55]";
List foo = new ArrayList();
String result = String.valueOf(s.toList());
assertEquals(result, expecting);
}

View File

@ -156,7 +156,7 @@ public class TestTokenTypeAssignment extends BaseTest {
Grammar g = new Grammar(
"grammar t;\n"+
"a : '\\n';\n");
Set literals = g.stringLiteralToTypeMap.keySet();
Set<?> literals = g.stringLiteralToTypeMap.keySet();
// must store literals how they appear in the antlr grammar
assertEquals("'\\n'", literals.toArray()[0]);
}
@ -179,8 +179,7 @@ public class TestTokenTypeAssignment extends BaseTest {
tokens.remove(tokenName);
}
// make sure there are not any others (other than <EOF> etc...)
for (Iterator iter = tokens.iterator(); iter.hasNext();) {
String tokenName = (String) iter.next();
for (String tokenName : tokens) {
assertTrue("unexpected token name "+tokenName,
g.getTokenType(tokenName) < Token.MIN_USER_TOKEN_TYPE);
}

View File

@ -38,7 +38,7 @@ import java.util.List;
public class TestTopologicalSort extends BaseTest {
@Test
public void testFairlyLargeGraph() throws Exception {
Graph g = new Graph();
Graph<String> g = new Graph<String>();
g.addEdge("C", "F");
g.addEdge("C", "G");
g.addEdge("C", "A");
@ -52,63 +52,63 @@ public class TestTopologicalSort extends BaseTest {
g.addEdge("E", "F");
String expecting = "[H, F, E, D, G, A, B, C]";
List nodes = g.sort();
List<String> nodes = g.sort();
String result = nodes.toString();
assertEquals(expecting, result);
}
@Test
public void testCyclicGraph() throws Exception {
Graph g = new Graph();
Graph<String> g = new Graph<String>();
g.addEdge("A", "B");
g.addEdge("B", "C");
g.addEdge("C", "A");
g.addEdge("C", "D");
String expecting = "[D, C, B, A]";
List nodes = g.sort();
List<String> nodes = g.sort();
String result = nodes.toString();
assertEquals(expecting, result);
}
@Test
public void testRepeatedEdges() throws Exception {
Graph g = new Graph();
Graph<String> g = new Graph<String>();
g.addEdge("A", "B");
g.addEdge("B", "C");
g.addEdge("A", "B"); // dup
g.addEdge("C", "D");
String expecting = "[D, C, B, A]";
List nodes = g.sort();
List<String> nodes = g.sort();
String result = nodes.toString();
assertEquals(expecting, result);
}
@Test
public void testSimpleTokenDependence() throws Exception {
Graph g = new Graph();
Graph<String> g = new Graph<String>();
g.addEdge("Java.g4", "MyJava.tokens"); // Java feeds off manual token file
g.addEdge("Java.tokens", "Java.g4");
g.addEdge("Def.g4", "Java.tokens"); // walkers feed off generated tokens
g.addEdge("Ref.g4", "Java.tokens");
String expecting = "[MyJava.tokens, Java.g4, Java.tokens, Ref.g4, Def.g4]";
List nodes = g.sort();
List<String> nodes = g.sort();
String result = nodes.toString();
assertEquals(expecting, result);
}
@Test
public void testParserLexerCombo() throws Exception {
Graph g = new Graph();
Graph<String> g = new Graph<String>();
g.addEdge("JavaLexer.tokens", "JavaLexer.g4");
g.addEdge("JavaParser.g4", "JavaLexer.tokens");
g.addEdge("Def.g4", "JavaLexer.tokens");
g.addEdge("Ref.g4", "JavaLexer.tokens");
String expecting = "[JavaLexer.g4, JavaLexer.tokens, JavaParser.g4, Ref.g4, Def.g4]";
List nodes = g.sort();
List<String> nodes = g.sort();
String result = nodes.toString();
assertEquals(expecting, result);
}