epp(3)

MODULE
epp - An Erlang Code Preprocessor

DESCRIPTION

The Erlang code preprocessor includes functions which are used by compile to preprocess macros and include files before the actual parsing takes place.

EXPORTS

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.

close(Epp) -> ok

    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".

ERROR INFORMATION

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)

SEE ALSO

erl_parse(3)