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}
FileName = atom() | string()IncludePath = [DirectoryName]DirectoryName = atom() | string()PredefMacros = [{atom(),term()}]Epp = pid() -- handle to the epp serverErrorDescriptor = term()Opens a file for preprocessing.
Epp = pid() -- handle to the epp serverCloses the preprocessing of a file.
parse_erl_form(Epp) -> {ok, AbsForm} | {eof, Line} | {error, ErrorInfo}
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}
FileName = atom() | string()IncludePath = [DirectoryName]DirectoryName = atom() | string()PredefMacros = [{atom(),term()}]Form = term() -- same as returned by erl_parse:parse_formPreprocesses 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)