Erlang 20

erl_pp

erl_pp

模块

erl_pp

模块摘要

Erlang较好的打印机。

描述

本模块中的功能用于生成抽象形式的美观吸引人的表示形式,适用于打印。所有函数都会返回(可能很深)的字符列表,并在表单错误时生成错误。

所有函数都可以有一个可选参数,该参数指定如果尝试打印未知表单时调用的钩子。

数据类型

hook_function() =

none |

fun((Expr ::erl_parse:abstract_expr(),

CurrentIndentation :: integer(),

CurrentPrecedence :: integer() >= 0,

Options ::options()) ->

io_lib:chars())

可选参数HookFunction在本模块中描述的函数中,定义了一个函数,当一个未知的表单出现在要有一个有效表达式时,该函数就会被调用。如果HookFunction等于none,没有钩子功能。

被调用的钩子函数是返回一个(可能很深的)字符列表。函数expr/4在钩子中很有用。

如果CurrentIndentation为负值,则不存在换行符,并且只使用一个空格作为分隔符。

option() =

{hook,hook_function()} | {encoding, latin1 | unicode | utf8}

options() =hook_function()| [option()]

输出

attribute(Attribute) -> io_lib:chars()

attribute(Attribute, Options) -> io_lib:chars()

类型

相同form/1,2,但仅限于属性Attribute

expr(表达式) - > io_lib:chars()

expr(表达式,选项) - > io_lib:chars()

expr(表达式,缩进,选项) - > io_lib:chars()

expr(表达式,缩进,优先,选项) - > io_lib:chars()

类型

打印一个表达式。这对于实现钩子很有用(请参阅部分Known Limitations)。

exprs(表达式) - > io_lib:chars()

exprs(表达式,选项) - > io_lib:chars()

exprs(表达式,缩进,选项) - > io_lib:chars()

类型

form/1,2相同,但仅限于表达式的顺序Expressions

窗体(Form) - > io_lib:chars()

窗体(窗体,选项) - > io_lib:chars()

类型

较好地打印一个Form,这是一个返回类型的抽象形式erl_parse:parse_form/1

function(Function) -> io_lib:chars()

function(Function, Options) -> io_lib:chars()

类型

form/1,2,但只适用于功能Function...

guard(Guard) -> io_lib:chars()

guard(Guard, Options) -> io_lib:chars()

类型

相同form/1,2,但仅限于警卫测试Guard

已知限制

在表达式以外的其他地方不可能对未知的形式有钩子函数。

另见

erl_eval(3)erl_parse(3)io(3)