Strings passed to eval are always evaluated with an initial vocabulary search path consisting of just the syntax vocabulary. This is the same search path that source files start out with. This behavior can be customized by taking advantage of the fact that eval is composed from two simpler words:
Code in the listener tool starts out with a different initial search path, with more vocabularies available by default. Strings of code can be evaluated in this search path by using (eval) with a different combinator:
Example In this example, a string is evaluated with a fictional cad.objects vocabulary in the search path by default, together with the listener's interactive-vocabs; the quotation is expected to produce a sequence on the stack:
Note that the search path in the outer code (set by the USING: form) has no relation to the search path used when parsing the string parameter (this is determined by with-interactive-vocabs and use-vocab).