package org.deved.antlride.core.exporter.ebnf; import java.io.File; import java.util.ArrayList; import java.util.Collection; import org.deved.antlride.core.build.AntlrSourceParserRepository; import org.deved.antlride.core.formatter.AntlrTestUtility; import org.deved.antlride.core.model.IGrammar; import org.deved.antlride.core.model.IRule; import org.eclipse.core.runtime.CoreException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; @RunWith(value = Parameterized.class) public class EbnfNotationTest { private File file; private String content; public EbnfNotationTest(File file, String content) { this.file = file; this.content = content; } @Test public void toEbnf() throws CoreException { System.out.printf("Exporting <<%s>>\n", file); // get a grammar IGrammar grammar = AntlrSourceParserRepository.parse(content); IRule[] rules = grammar.getRules(); for (IRule rule : rules) { System.out.println(rule.toEbnf()); } } @Parameters public static Collection<Object[]> data() { Collection<Object[]> paths = new ArrayList<Object[]>(); // File root = new File("grammar's/java-from-v2/Javav2.g"); File root = new File("grammar's/ANTLR/ANTLRv3.g"); Collection<File> files = AntlrTestUtility.collectFiles(root, true, "g"); for (File file : files) { paths .add(new Object[] { file, AntlrTestUtility.readContent(file) }); } return paths; } }