package refdiff.parsers;

import refdiff.core.io.FilePathFilter;
import refdiff.core.io.SourceFileSet;
import refdiff.core.cst.CstRoot;

public interface LanguagePlugin {
	
	CstRoot parse(SourceFileSet sources) throws Exception;
	
	FilePathFilter getAllowedFilesFilter();
	
}

@@ -140,104 +140,1043 @@
 %0D%0A%0D%0A
-public interface LanguagePlugin %7B%0D%0A%09%0D%0A%09CstRoot parse(SourceFileSet sources) throws Exception;%0D%0A%09
+/**%0D%0A * A LanguagePlugin is responsible for generating the Code Structure Tree (CST) for%0D%0A * a particular programming language.%0D%0A */%0D%0Apublic interface LanguagePlugin %7B%0D%0A%0D%0A%09/**%0D%0A%09 * Analyze the given source files and build a Code Structure Tree (CST), represented by %0D%0A%09 * the %7B@code CstRoot%7D object.%0D%0A%09 * %0D%0A%09 * @param sources A set of source files that should be analyzed. Note that RefDiff does not pass all%0D%0A%09 * files of the project for analysis. Usually, only the files that changed between the revisions under %0D%0A%09 * examination are passed to this method. Additionally, RefDiff filters files using the %7B@code getAllowedFilesFilter%7D%0D%0A%09 * method.%0D%0A%09 * @return The CST.%0D%0A%09 */%0D%0A%09CstRoot parse(SourceFileSet sources) throws Exception;%0D%0A%09%0D%0A%09/**%0D%0A%09 * @return A %7B@code FilePathFilter%7D object, which contains a list of file extensions supported by this%0D%0A%09 * LanguagePlugin. Additionally, a list of excluded file extensions may be provided. For example, the%0D%0A%09 * JavaScript language plugin analyzes .js files, but ignores .min.js files.%0D%0A%09 */
 %0D%0A%09F

Improve Javadoc