啊,我原來的答案很可能是無關緊要的......
要做到你所描述的,你要檢索的文件表單列表類型定義,分析它,或有人分析它如果它確實是聯合類型,則檢索這些元素並將它們返回到列表中。
如果你想從源頭做到這一點,你需要這樣的:
get_abstract_code_from_src(Filename) ->
get_abstract_code_from_src(Filename, init_opts()).
get_abstract_code_from_src(Filename, Opts) ->
case compile:file(Filename, Opts) of
{ok,_,Abs} -> {ok, Abs};
Err -> Err
end.
init_opts() -> [to_pp, binary, return_errors].
如果沒有宏或想避免包括標題,你也可以用得到的形式:
epp_dodger:quick_parse_file(Filename).
原來的答覆:
你已經有了:
-type yummy_foods() :: ice_cream | cake | cookies | spam.
您可以使用:
-type list_of_yummy_foods :: [yummy_foods()].
這將保證沒有別的將出現在列表中,雖然,並不是所有這些食物會。
總之,答案是否定的。 –