User's Guide
Reference Manual
Release Notes
PDF
Top

STDLIB
Reference Manual
Version 1.16.4

Expand All
Contract All

Table of Contents

# epp

### MODULE

epp

### MODULE SUMMARY

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)