@specs-feup/clava
Version:
A C/C++ source-to-source compiler written in Typescript
39 lines • 1.35 kB
TypeScript
import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js";
import { FileJp } from "../../Joinpoints.js";
/**
* Given a folder, collects sources in that folder, parses and returns one each time next() is called.
*
* Pushes an empty Clava AST. Parsed files are added one at a time, and the AST contains at most one file at any given time.
*
* @param srcFoldername - Name of the folder with the source files to iterate.
* @param sourceExt - Extensions of the source files.
* @param headerExt - Extensions of the header files.
*/
export default class FileIterator {
files: JavaClasses.File[];
currentFile: number;
isInit: boolean;
isClosed: boolean;
pushedAst: boolean;
srcFoldername: string;
sourceExt: string[];
headerExt: string[];
constructor(srcFoldername: string, sourceExt?: string[], headerExt?: string[]);
/**
* @returns $file join point, if there are still files to iterate over, or undefined otherwise
*/
next(): FileJp | undefined;
/**
* @returns True if there are still files to iterate over, false otherwise.
*/
hasNext(): boolean;
private init;
private close;
/**
* Attempts to add folders of header files as includes.
*
*/
private addIncludes;
private getFiles;
}
//# sourceMappingURL=FileIterator.d.ts.map