4
もっと多くのコード行を解析するにはどうすればよいですか?Juliaで複数行文字列を解析するには?
これが機能している:
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
感謝の下に参照してください!感動しています! :) 1行に複数の式がある問題があるようです。あなたの応答を編集してコードで表示します。しかし、それはピアレビューを必要とするとは思っていません...あなたは 'eval(parseall(" print(1); print(2)\ n \ nを3:4 \ n print(i)\ nend \ (i)\ nend \ n ")))') – Liso
@Lisoあなたの例は確かにです。それはパーサがセミコロンを見つけたときに ':toplevel'式を生成することと関係があります。 'push!(exs、ex)'を 'ex.head ==:toplevel 'に置き換えますか?追加!(exs、ex.args):push!(exs、ex) '私の問題を修正しました。 –
Alexander_Morleyと@Dan_Getz私は固定バージョンを受け入れるのが好きです。私たちはそれをどうやってできるのですか? – Liso