檢視原始碼 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()。