Preprocessor directives

Preprocessor directives are processed while psiexp files are being read

#include "filename"

Analogous to the C #include directive. The contents of filename are read before reading the next line of the file where the #include appears. Psiexp searches for filename in the folders of the recursively included files, starting with the main .psi file, and if there still is no match, the folders added with the #libdir directive, and finally the standard library folder in /Applications/Psiexp.app/Contents/Resources/libpsiexp/. Most programs begin with

#include “psiexp.psi”

which defines many of the functions described in this document.

#libdir folder

Add this directory to the list of folders to be searched for #include*-ed files.

#set name value

Set variable name to value. Equivalent to name = value, except that it takes effect while the file is being read. Used to affect the behaviour at parse time.

#set silentInclude value

If value is nonzero, do not print “Including…” message on the console.

This is used by psiexp.psi to avoid console clutter.

#set verboseInclude if value is nonzero, print lots of messages about including on the console