当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang parse_erl_exprs(Prompt)用法及代码示例


parse_erl_exprs(Prompt) -> Result
parse_erl_exprs(IoDevice, Prompt) -> Result
parse_erl_exprs(IoDevice, Prompt, StartLocation) -> Result
parse_erl_exprs(IoDevice, Prompt, StartLocation, Options) ->
                   Result
OTP R16B
类型:
IoDevice = device()
Prompt = prompt()
StartLocation = location()
Options = erl_scan:options()
Result = parse_ret()
parse_ret() =
{好的,
表达式列表::[erl_parse:abstract_expr()],
结束地点::location()} |
{eof,结束位置::location()} |
{错误,
错误信息::erl_scan:error_info()|erl_parse:error_info(),
错误位置::location()} |
server_no_data()

server_no_data() = {错误,错误说明::term()} |埃夫

从标准输入读取数据(IoDevice),提示它Prompt。在指定位置开始阅读StartLocation(1)。争论Options作为参数传递Options函数的 erl_scan:tokens/4。数据被标记并解析,就像它是 Erlang 表达式序列一样,直到最后一个点 (.) 到达了。

该函数返回:


{ok, ExprList, EndLocation}

解析成功。


{eof, EndLocation}

标记生成器遇到文件结尾。


eof

I/O 服务器遇到文件结尾。


{error, ErrorInfo, ErrorLocation}

标记化或解析时发生错误。


{error, ErrorDescription}

其他(罕见)错误情况,例如从 NFS 文件系统读取时为 {error, estale}

例子:

25> io:parse_erl_exprs('enter>').
enter>abc(), "hey".
{ok, [{call,1,{atom,1,abc},[]},{string,1,"hey"}],2}
26> io:parse_erl_exprs ('enter>').
enter>abc("hey".
{error,{1,erl_parse,["syntax error before: ",["'.'"]]},2}

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 parse_erl_exprs(Prompt) -> Result。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。