front-end/complete-program in drscheme:language:module-based-language->language-mixin
front-end/complete-program method reads, parses,
and optionally compiles a program in the language. The first
argument contains all of the data to be read (until eof) and
the second argument is a value representing the source of
the program (typically an editor, but may also be a string
naming a file or some other value).
The third argument is the current settings
for the language. The front-end/complete-program
method is expected to return a thunk that is called
repeatedly to get all of the expressions in the
program. When all expressions have been read, the thunk is
expected to return eof.
This method is only called for programs in the definitions
window. Notably, it is not called for
programs that are ed or loaded.
See
current-load and
current-eval
for those.eval
This method is expected to raise an appropriate exception if
the program is malformed, eg an exn:syntax or
exn:read.
This is called on the user's thread, as is the thunk it returns.
Implementations of this method should not return fully
expanded expressions, since there are two forms of
expansion, using either
expand
or
expand-top-level-with-compile-time-evals
and the use of the expanded code dictates which applies.
See also
front-end/interaction.
((-> (union sexp syntax eof))senda-drscheme:language:module-based-language->language-mixinfront-end/complete-programportline-col-offsetsettingsteachpack-cache
port: port
line-col-offset: (union false? (list/p (union false? number?) (union false? number?) (union false? number?)))
settings: settings
teachpack-cache: drscheme:teachpack:teachpack-cacheReads a syntax object, from
input. Does not usesettings.For languages that use these mixins, there is no difference between this method and
front-end/interaction.