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)