/** * Pure static class implementing subset of C-style preprocessor. * inspired by: https://github.com/dcodeIO/Preprocessor.js * * @ignore */ export class Preprocessor { /** * Run c-like preprocessor on the source code, and resolves the code based on the defines and ifdefs * * @param {string} source - The source code to work on. * @param {Map} [includes] - A map containing key-value pairs of include names * and their content. These are used for resolving #include directives in the source. * @param {boolean} [stripUnusedColorAttachments] - If true, strips unused color attachments. * @returns {string|null} Returns preprocessed source code, or null in case of error. */ static run(source: string, includes?: Map, stripUnusedColorAttachments?: boolean): string | null; static processArraySize(source: any, intDefines: any): any; static RemoveEmptyLines(source: any): any; /** * Process source code, and resolves the code based on the defines and ifdefs. * * @param {string} source - The source code to work on. * @param {Map} defines - Supplied defines which are used in addition to those * defined in the source code. Maps a define name to its value. Note that the map is modified * by the function. * @param {Map} [includes] - An object containing key-value pairs of include names and their * content. * @returns {string} Returns preprocessed source code. */ static _preprocess(source: string, defines?: Map, includes?: Map): string; static _keep(stack: any): boolean; /** * Very simple expression evaluation, handles cases: * expression * defined(expression) * !defined(expression) * * But does not handle more complex cases, which would require more complex system: * defined(A) || defined(B) */ static evaluate(expression: any, defines: any): { result: any; error: boolean; }; }