Google

PLT MzLib: Libraries Manual


include.ss: Textually Including Source

(include path-spec)      SYNTAX

Inlines the syntax in the designated file in place of the include expression.

The path-spec can be either a literal string (parsed according to the platform's conventions) or a path construction of the form (build-path elem ···1) where build-path is module-identifier=? either to the build-path export from mzscheme or to the top-level build-path, and where each elem is a path string, up (unquoted), or same (unquoted). The elems are combined in the same way as for the build-path function (see section 11.3.1 in PLT MzScheme: Language Manual).

If path-spec specifies a relative path, it is resolved relative to the source for the include expression, if that source is a complete path string. If the source is not a complete path string, then path-spec is resolved relative to the current load relative directory if one is available, or to the current directory otherwise.

The included syntax is given the lexical context of the include expression.

(include-at/relative-to context source path-spec)      SYNTAX

Like include, except that the lexical context of context is used for the included syntax, and a relative path-spec is resolved with respect to the source of source. The context and source elements are otherwise discarded by expansion.

(include-at/relative-to/reader context source path-spec reader-expr)      SYNTAX

Combines include-at/relative-to and include/reader.

(include/reader path-spec reader-expr)      SYNTAX

Like include, except that the procedure produced by the expression reader-expr is used to read the included file, instead of read-syntax.

The reader-expr is evaluated at expansion time in the transformer environment. Since it serves as a replacement for read-syntax, the expression's value should be a procedure that consumes two inputs -- a string representing the source and an input port -- and produces a syntax object or eof. The procedure will be called repeatedly until it produces eof.

The syntax objects returned by the procedure should have source location information, but usually no lexical context; any lexical context in the syntax objects will be ignored.