pub fn preprocess_source(
source: Source,
options: PreprocessOptions,
) -> Result<PreparedGlm, Error>Expand description
Expand local quoted includes containing complete declarations,
#define NAME=value, #ifdef, #ifndef,
string-comparison #if, #else, #endif, and explicit ${NAME} variables.
Substitution is one pass, including within quoted values. Defines become
visible in source order, also across includes. Inactive branches are removed
before syntax parsing. #set and #warning remain inert directive lines for
subsequent interpretation; they do not populate the explicit define table.
Preprocessing switches reinclude, and Arras literal_if and
relax_undefined_if, are also applied as explicit boolean settings.
Other active directives fail explicitly. In particular, this function never
executes code, accesses the process environment, or fetches remote includes.
Include paths resolve relative to the primary file, matching an engine
launched in that directory; implicit GLPATH searches are not performed.
Bounds: 64 MiB processed input and expanded output, 1 MiB per line/definition,
4096 files/defines, one million source-map segments, and 64 include or
conditional levels. Duplicate includes require reinclude; cycles fail.