我可以如何解析更多的代码行?
以下是有效的代码:
julia> eval(parse("""print("O");print("K")"""))
OK
这不起作用:
julia> eval(parse("""print("N");
print("O")"""))
ERROR: ParseError("extra token after end of expression")
Stacktrace:
[1] #parse#235(::Bool, ::Function, ::String) at ./parse.jl:237
[2] parse(::String) at ./parse.jl:232
顺便说一下,如果我逐行尝试,会遇到其他问题。例如:
julia> parse("""for i in 1:3""")
:($(Expr(:incomplete, "incomplete: premature end of input")))
尽管:
julia> eval(parse("""for i in 1:2
println(i)
end"""))
1
2
eval(parseall("print(1); print(2) \n\nfor i in 3:4\n print(i)\nend\n"))
和eval(parseall("print(1)\nprint(2) \n\nfor i in 3:4\n print(i)\nend\n"))
。 - Liso:toplevel
表达式有关。将push!(exs,ex)
替换为ex.head ==:toplevel?append!(exs,ex.args):push!(exs,ex)
可以解决我的问题。 - Dan Getzparseall
已经被移动到Meta.parseall
。 - BallpointBen