diameter_make
diameter_make
模块
diameter_make
模块摘要
Diameter字典编译。
描述
该函数codec/2
用于将一个直径编译dictionary file
成Erlang源代码。生成的源实现接口直径,需要对字典的消息和AVP进行编码和解码。
该实用程序diameterc(1)
提供了一个备用编译界面。
出口
codec(File :: iolist() | binary(), [Opt]) -> ok | {ok, [Out]} | {error, Reason}
编译单个字典文件。输入File
可以是路径或文字字典,发生换行(ascii NL)或回车(ascii CR)来识别后者。Opt
确定结果的格式以及它们是写入文件还是返回,并且可以具有以下类型。
parse | forms | erl | hrl
指定输出格式。输出是返回还是写入文件取决于是否return
指定了选项。当写入文件时,生成的文件(一个或多个)将具有扩展.D
,.F
,.erl
,和.hrl
分别基本名称默认为dictionary
如果输入字典是文字,并且不指定@name
。返回时,结果按相应格式选项的顺序排列。如果未指定,格式选项默认为erl
和hrl
(按此顺序)。
parse
格式是可以传递到内部表示flatten/1
和format/1
,而forms
格式可以传递给compile:forms/2
。在erl
和hrl
格式返回iolists。
{include, string()}
将指定的目录添加到代码路径中。用于指向从继承字典编译的波束文件,@inherits
创建波束依赖关系的字典文件中,而不是erl / hrl依赖项。
include
可以指定多个选项。
{outdir, string()}
将生成的源代码写入指定的目录。默认为当前工作目录。如果return
指定了选项,则不起作用。
return
以{ok, [Out]}
tuple的形式返回结果,而不是写入文件并返回ok
。
{name|prefix, string()}
在编译,设置@name
或@prefix
指定的字符串之前转换输入字典。
{inherits, string()}
编译前转换输入字典,并追加@inherits
指定字符串的。
有两种形式有特殊的含义:
{inherits, "-"}
{inherits, "Prev/Mod"}
所述第一有清除所有以前的继承,取代的先前继承的第二的效果Prev
,以之一Mod
。这允许在不修改文件本身的情况下改变输入字典的语义。
inherits
可以指定多个选项。
请注意,字典@name
和outdir
选项一起确定return
未指定选项时的输出路径。的@name
文字输入字典默认的dictionary
。
返回的错误原因可以使用转换为可读的字符串format_error/1
。
format(Parsed) -> iolist()
将解析的字典作为返回codec/2
的字典格式转换回来。
flatten(Parsed) -> term()
重新codec/2
构建解析的字典,不需要使用返回的字典@inherits
。也就是说,构建一个等价字典,其中所有AVP都是在字典中定义的。返回值也是一个解析的字典。
format_error(Reason) -> string()
将返回的错误原因codec/2
转换为可读的字符串。
错误
无法识别的选项会被忽略。
另见
diameterc(1)
,diameter_dict(4)