啊,我原来的答案很可能是无关紧要的......
要做到你所描述的,你要检索的文件表单列表类型定义,分析它,或有人分析它如果它确实是联合类型,则检索这些元素并将它们返回到列表中。
如果你想从源头做到这一点,你需要这样的:
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()].
这将保证没有别的将出现在列表中,虽然,并不是所有这些食物会。
总之,答案是否定的。 –