From 1853e964e96c41e762ca0ab97259ee4e79d86ec7 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Mon, 3 Nov 2014 13:35:54 -0800 Subject: Use the new ASTs --- src/map/magic-v2.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/map/magic-v2.cpp') diff --git a/src/map/magic-v2.cpp b/src/map/magic-v2.cpp index eeeb989..26c1a19 100644 --- a/src/map/magic-v2.cpp +++ b/src/map/magic-v2.cpp @@ -36,6 +36,8 @@ #include "../sexpr/parser.hpp" +#include "../ast/script.hpp" + #include "itemdb.hpp" #include "magic-expr.hpp" #include "magic-interpreter.hpp" @@ -785,7 +787,20 @@ namespace magic_v2 if (s._list[1]._type != sexpr::STRING) return fail(s._list[1], "not string"_s); ZString body = s._list[1]._str; - std::unique_ptr script = parse_script(body, s._list[1]._span.begin.line, true); + auto begin = s._list[1]._span.begin; + io::LineCharReader lr(io::from_string, begin.filename, body, begin.line, begin.column); + ast::script::ScriptOptions opt; + opt.implicit_start = true; + opt.implicit_end = true; + opt.no_event = true; + auto code_res = ast::script::parse_script_body(lr, opt); + if (code_res.get_failure()) + { + PRINTF("%s\n"_fmt, code_res.get_failure()); + } + auto code = TRY_UNWRAP(code_res.get_success(), + return fail(s._list[1], "script does not compile"_s)); + std::unique_ptr script = compile_script(code, true); if (!script) return fail(s._list[1], "script does not compile"_s); EffectScript e; -- cgit v1.2.3-60-g2f50