| 99 | } |
| 100 | |
| 101 | public boolean run() throws IOException { |
| 102 | boolean result = true; |
| 103 | // Determine logger based on verbose mode |
| 104 | Logger logger = verbose ? new Logger.Default(System.out) : Logger.NULL; |
| 105 | ArrayList<WyilFile> deps = new ArrayList<>(); |
| 106 | // Extract any dependencies from zips |
| 107 | for(File dep : whileypath) { |
| 108 | Compiler.extractDependencies(dep,deps); |
| 109 | } |
| 110 | // Construct QuickCheck task |
| 111 | QuickCheck task = new QuickCheck(logger); |
| 112 | // Start with default context |
| 113 | QuickCheck.Context context = QuickCheck.DEFAULT_CONTEXT; |
| 114 | // Apply all configurations |
| 115 | for(Function<Context,Context> c : configs) { |
| 116 | context = c.apply(context); |
| 117 | } |
| 118 | WyilFile[] dependencies = deps.toArray(new WyilFile[deps.size()]); |
| 119 | // Check each WyIL file requested |
| 120 | for(Trie source : sources) { |
| 121 | WyilFile wf = wyc.Compiler.readWyilFile(wyildir, source); |
| 122 | // Extract source file |
| 123 | task.check(wf, context, Collections.EMPTY_LIST, dependencies); |
| 124 | // Write out any syntactic markers |
| 125 | Compiler.writeSyntacticMarkers(mailbox, wf); |
| 126 | // |
| 127 | result &= wf.isValid(); |
| 128 | } |
| 129 | // DOne |
| 130 | return result; |
| 131 | } |
| 132 | |
| 133 | /** |
| 134 | * Command-line options |