<commit_before>package wyc.util;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import wybs.lang.Content;
import wybs.lang.Logger;
import wybs.lang.Path;
import wybs.lang.Pipeline;
import wybs.util.DirectoryRoot;
import wybs.util.JarFileRoot;
import wybs.util.StandardProject;
import wybs.util.StandardBuildRule;
import wybs.util.Trie;
import wybs.util.VirtualRoot;
import wyil.transforms.*;
import wyil.builders.Wyil2WyalBuilder;
import wyil.checks.*;
import wyc.builder.WhileyBuilder;
import wyc.lang.WhileyFile;
import wycs.builders.Wyal2WycsBuilder;
import wycs.core.WycsFile;
import wycs.syntax.WyalFile;
import wycs.util.WycsBuildTask;
import wyil.io.WyilFilePrinter;
import wyil.lang.WyilFile;

/**
 * <p>
 * Provides a general-purpose implementation for compiling Whiley source files
 * into Wyil binary files. This is designed to make it easy to write compiler
 * variants, such as for supporting different back-ends (e.g. Java or
 * JavaScript) or for interfacing with other frameworks (e.g. Ant). This class
 * is designed to be extended by clients which are providing some kind of
 * compiler extension.
 * </p>
 * 
 * @author <NAME>
 * 
 */
public class WycBuildTask {
	
	/**
	 * The purpose of the source file filter is simply to ensure only source
	 * files are loaded in a given directory root. It is not strictly necessary
	 * for correct operation, although hopefully it offers some performance<commit_msg>WYC: some very minor tweaks.<commit_after>package wyc.util;

import java.io.*;
import java.util.*;

import wybs.lang.*;
import wybs.util.*;
import wyil.transforms.*;
import wyil.builders.Wyil2WyalBuilder;
import wyil.checks.*;
import wyc.builder.WhileyBuilder;
import wyc.lang.WhileyFile;
import wycs.builders.Wyal2WycsBuilder;
import wycs.core.WycsFile;
import wycs.syntax.WyalFile;
import wycs.util.WycsBuildTask;
import wyil.io.WyilFilePrinter;
import wyil.lang.WyilFile;

/**
 * <p>
 * Provides a general-purpose implementation for compiling Whiley source files
 * into Wyil binary files. This is designed to make it easy to write compiler
 * variants, such as for supporting different back-ends (e.g. Java or
 * JavaScript) or for interfacing with other frameworks (e.g. Ant). This class
 * is designed to be extended by clients which are providing some kind of
 * compiler extension.
 * </p>
 * 
 * @author <NAME>
 * 
 */
public class WycBuildTask {
	
	/**
	 * The purpose of the source file filter is simply to ensure only source
	 * files are loaded in a given directory root. It is not strictly necessary
	 * for correct operation, although hopefully it offers some performance
{'fraction_non_alphanumeric': 0.08836363636363637, 'fraction_numerical': 0.0014545454545454545, 'mean_word_length': 4.502, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1549357', 'n_tokens_mistral': 858, 'n_tokens_neox': 835, 'n_words': 295}