查看源代码 erl_anno (stdlib v6.2)
Erlang 编译器注解的抽象数据类型。
此模块提供了一个抽象类型,Erlang 编译器及其辅助模块使用该类型来保存诸如列、行号和文本之类的数据。该数据类型是如下所述的注解的集合。
Erlang 词法分析器返回带有以下注解子集的标记,具体取决于选项
column
- 标记开始的列。location
- 标记开始的行和列,如果列未知,则仅为行。text
- 标记的文本。
由此,派生出以下注解
line
- 标记开始的行。
此模块还支持以下注解,这些注解被各种模块使用
file
- 文件名。generated
- 布尔值,指示抽象代码是否由编译器生成。Erlang 编译器不会为此类代码发出警告。record
- 布尔值,指示抽象代码的来源是否为记录。由Dialyzer用于为元组元素分配类型。
erl_scan
模块中的函数column()
、end_location()
、line()
、location()
和text()
可用于检查标记中的注解。
erl_parse
模块中的函数anno_from_term()
、anno_to_term()
、fold_anno()
、map_anno()
、mapfold_anno()
和new_anno()
可用于操作抽象代码中的注解。
另请参阅
概要
函数
返回注解 Anno 的列。
返回注解 Anno 的文本的结束位置。如果没有文本,则返回undefined
。
返回注解 Anno 的文件名。如果没有文件名,则返回undefined
。
返回带有表示 Term 的注解。
如果注解 Anno 被标记为已生成,则返回true
。默认返回false
。
如果 Term 是注解的集合,则返回true
,否则返回false
。
返回注解 Anno 的行。
返回注解 Anno 的位置。
给定位置,创建一个新的注解集合。
修改注解 Anno 的文件名。
修改注解 Anno 的生成标记。
修改注解 Anno 的行。
修改注解 Anno 的位置。
修改注解 Anno 的记录标记。
修改注解 Anno 的文本。
返回注解 Anno 的文本。如果没有文本,则返回undefined
。
返回表示注解 Anno 的项。
类型
-opaque anno()
注解的集合。
-type anno_term() :: term().
表示注解集合的项。它要么是location/0
,要么是键值对的列表。
-type column() :: pos_integer().
-type filename() :: file:filename_all().
-type generated() :: boolean().
-type line() :: non_neg_integer().
-type record() :: boolean().
-type text() :: string().
函数
返回注解 Anno 的列。
返回注解 Anno 的文本的结束位置。如果没有文本,则返回undefined
。
返回注解 Anno 的文件名。如果没有文件名,则返回undefined
。
返回带有表示 Term 的注解。
另请参阅to_term()。
如果注解 Anno 被标记为已生成,则返回true
。默认返回false
。
如果 Term 是注解的集合,则返回true
,否则返回false
。
返回注解 Anno 的行。
返回注解 Anno 的位置。
给定位置,创建一个新的注解集合。
修改注解 Anno 的文件名。
修改注解 Anno 的生成标记。
修改注解 Anno 的行。
修改注解 Anno 的位置。
-spec set_record(Record, Anno) -> Anno when Record :: record(), Anno :: anno().
修改注解 Anno 的记录标记。
修改注解 Anno 的文本。
返回注解 Anno 的文本。如果没有文本,则返回undefined
。
返回表示注解 Anno 的项。
另请参阅from_term()。