在线文档教程
Erlang 20

epp

EPP

模块

EPP

模块摘要

一个Erlang代码预处理程序。

描述

Erlang代码预处理程序包含由compile模块,用于在解析之前对宏进行预处理并包含文件。

Erlang源文件编码由源文件的三行中的注释选择。匹配正则表达式的第一个字符串。coding\s*[:=]\s*([-a-zA-Z0-9])+选择编码。如果匹配的字符串不是有效的编码,则忽略它。有效编码Latin-1UTF-8,可以自由选择字符的情况。

例子:

%% coding: utf-8

%% For this file we have chosen encoding = Latin-1

%% -*- coding: latin-1 -*-

数据类型

macros() = [atom() | {atom(), term()}]

epp_handle() = pid()

处理到epp服务器。

source_encoding() = latin1 | utf8

输出

close(Epp) -> ok

类型

关闭文件的预处理。

default_encoding() -> source_encoding()

返回Erlang源文件的默认编码。

encoding_to_string(Encoding) -> string()

类型

返回编码的字符串表示形式。该字符串被认可read_encoding/1,2read_encoding_from_binary/1,2以及set_encoding/1,2为有效编码。

format_error(ErrorDescriptor) -> io_lib:chars()

类型

接收ErrorDescriptor并返回描述错误或警告的字符串。这个函数通常在处理ErrorInfo结构时被隐式调用(参见章节Error Information)。

open(Options) ->

{ok, Epp} | {ok, Epp, Extra} | {error, ErrorDescriptor}

类型

打开一个文件进行预处理。

如果extra在中指定Options,则返回值{ok, Epp, Extra}不是{ok, Epp}

open(FileName, IncludePath) ->

{ok,Epp}{Error Descriptor}

类型

相当于epp:open([{name, FileName}, {includes, IncludePath}])...

open(FileName, IncludePath, PredefMacros) ->

{ok,Epp}{Error Descriptor}

类型

相当于epp:open([{name, FileName}, {includes, IncludePath}, {macros, PredefMacros}])...

parse_erl_form(Epp) ->

{OK,AbsForm}

{Error,ErrorInfo}

{warning, WarningInfo} |

{eof,line}

类型

从打开的Erlang源文件返回下一个Erlang表单。 元组{eof,Line}在文件结尾处返回。 第一种形式对应于隐式属性-file(File,1)。,其中File是文件名。

parse_file(FileName, Options) ->

{ok, Form} |

{ok, Form, Extra} |

{error, OpenError}

类型

预处理和分析Erlang源文件。请注意,{eof, Line}在文件末尾返回的元组作为“表单”包含在内。

如果extra在中指定Options,则返回值{ok, [Form], Extra}不是{ok, [Form]}

parse_file(FileName, IncludePath, PredefMacros) ->

{ok, Form} | {error, OpenError}

类型

相当于epp:parse_file(FileName, [{includes, IncludePath}, {macros, PredefMacros}])

read_encoding(FileName) -> source_encoding() | none

read_encoding(FileName, Options) -> source_encoding() | none

类型

阅读encoding文件。返回读取的编码,或者返回none(如果找不到有效的编码)。

选项in_comment_only默认为true,这对于Erlang源文件是正确的。 如果设置为false,则编码字符串不一定必须在注释中出现。

read_encoding_from_binary(Binary) -> source_encoding() | none

read_encoding_from_binary(Binary, Options) ->

source_encoding()| none

类型

阅读encoding二进制文件。返回读取的编码,或者none如果找不到有效的编码。

选项in_comment_only默认为true,这对于Erlang源文件是正确的。 如果设置为false,则编码字符串不一定必须在注释中出现。

set_encoding(File) -> source_encoding() | none

类型

encoding从I / O设备读取并相应地设置设备的编码。引用的I / O设备的位置File不受影响。如果不能从I / O设备读取有效的编码,则I / O设备的编码设置为默认编码。

返回读取的编码,如果没有找到有效的编码,则返回none。

类型

encoding从I / O设备读取并相应地设置设备的编码。引用的I / O设备的位置File不受影响。如果不能从I / O设备读取有效的编码,则I / O设备的编码设置encoding为由指定的编码Default

返回读取的编码,如果没有找到有效的编码,则返回none。

错误信息

ErrorInfo是标准ErrorInfo结构,从所有I/O模块返回。格式如下:

{ErrorLine, Module, ErrorDescriptor}

通过以下调用获得一个描述错误的字符串:

Module:format_error(ErrorDescriptor)

另见

erl_parse(3)