Preprocessor directives ================================ Preprocessor directives are processed while psiexp files are being read .. function:: #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. .. function:: #libdir folder Add this directory to the list of folders to be searched for #include*-ed files. .. function:: #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