(index ("user-options-pass" 0) ("user-read-pass" 485) ("user-preprocessor-pass" 979) ("user-pass" 1283) ("user-post-analysis-pass" 1545))
(def (sig (parameter "user-options-pass" (id user-options-pass))) (p "Holds a procedure that will be called with a list of command-line arguments and should return two values: the source filename and the actual list of options, where compiler switches have their leading " (tt "-") " (hyphen) removed and are converted to symbols.  Note that this parameter is invoked " (b "before") " processing of the " (tt "-extend") " option, and so can only be changed in compiled user passes."))
(def (sig (parameter "user-read-pass" (id user-read-pass))) (p "Holds a procedure of three arguments. The first argument is a list of strings with the code passed to the compiler via " (tt "-prelude") " options. The second argument is a list of source files including any files specified by " (tt "-prologue") " and " (tt "-epilogue") ". The third argument is a list of strings specified using " (tt "-postlude") " options. The procedure should return a list of toplevel Scheme expressions."))
(def (sig (parameter "user-preprocessor-pass" (id user-preprocessor-pass))) (p "Holds a procedure of one argument. This procedure is applied to each toplevel expression in the source file " (b "before") " macro-expansion. The result is macro-expanded and compiled in place of the original expression."))
(def (sig (parameter "user-pass" (id user-pass))) (p "Holds a procedure of one argument. This procedure is applied to each toplevel expression " (b "after") " macro-expansion.  The result of the procedure is then compiled in place of the original expression."))
(def (sig (parameter "user-post-analysis-pass" (id user-post-analysis-pass))) (p "Holds a procedure that will be called after every performed program analysis pass. The procedure (when defined) will be called with seven arguments: a symbol indicating the analysis pass, the program database, the current node graph, a getter and a setter-procedure which can be used to access and manipulate the program database, which holds various information about the compiled program, a pass iteration count, and an analysis continuation flag. The getter procedure should be called with two arguments: a symbol representing the binding for which information should be retrieved, and a symbol that specifies the database-entry. The current value of the database entry will be returned or " (tt "#f") ", if no such entry is available. The setter procedure is called with three arguments: the symbol and key and the new value. The pass iteration count currently is meaningful only for the 'opt pass. The analysis continuation flag will be " (tt "#f") " for the last 'opt pass. For information about the contents of the program database contact the author.") (p "Loaded code (via the " (tt "-extend") " option) has access to the library units " (tt "extras, srfi-1, srfi-4, utils, regex") " and the pattern matching macros. Multithreading is not available.") (p "Note that the macroexpansion/canonicalization phase of the compiler adds certain forms to the source program.  These extra expressions are not seen by " (tt "user-preprocessor-pass") " but by " (tt "user-pass") "."))
