The Erlang code preprocessor includes functions which are used
by compile
to preprocess macros and include files before
the actual parsing takes place.
open(FileName, IncludePath) -> {ok,Epp} | {error, ErrorDescriptor}
open(FileName, IncludePath, PredefMacros) -> {ok,Epp} | {error, ErrorDescriptor}
Types:
FileName = atom() | string()
IncludePath = [DirectoryName]
DirectoryName = atom() | string()
PredefMacros = [{atom(),term()}]
Epp = pid() -- handle to the epp server
ErrorDescriptor = term()
Opens a file for preprocessing.
Types:
Epp = pid() -- handle to the epp server
Closes the preprocessing of a file.
parse_erl_form(Epp) -> {ok, AbsForm} | {eof, Line} | {error, ErrorInfo}
Types:
Epp = pid()
AbsForm = term()
Line = integer()
ErrorInfo = see separate description below.
Returns the next Erlang form from the opened Erlang source file.
The tuple {eof, Line}
is returned at end-of-file. The first
form corresponds to an implicit attribute -file(File,1).
, where
File
is the name of the file.
parse_file(FileName,IncludePath,PredefMacro) -> {ok,[Form]} | {error,OpenError}
Types:
FileName = atom() | string()
IncludePath = [DirectoryName]
DirectoryName = atom() | string()
PredefMacros = [{atom(),term()}]
Form = term() -- same as returned by erl_parse:parse_form
Preprocesses and parses an Erlang source file.
Note that the tuple {eof, Line}
returned at end-of-file is
included as a "form".
The ErrorInfo
mentioned above is the standard
ErrorInfo
structure which is returned from all IO
modules. It has the following format:
{ErrorLine, Module, ErrorDescriptor}
A string which describes the error is obtained with the following call:
apply(Module, format_error, ErrorDescriptor)