diff options
author | Hello TMW <hello@themanaworld.org> | 2024-04-06 01:14:30 +0000 |
---|---|---|
committer | Hello TMW <hello@themanaworld.org> | 2024-04-06 01:14:30 +0000 |
commit | 90754fd121ffaec886c415689031f9ef01ae4972 (patch) | |
tree | 047f645931fdb0715afe784b8bc445743a78a371 /src/ast | |
parent | e42f76d0b0f4d2ec3a9008979267311f5246fb22 (diff) | |
parent | ebf078b9fa81142834dc45e22ea661a61c50d17b (diff) | |
download | tmwa-master.tar.gz tmwa-master.tar.bz2 tmwa-master.tar.xz tmwa-master.zip |
Diffstat (limited to 'src/ast')
-rw-r--r-- | src/ast/item.cpp | 1 | ||||
-rw-r--r-- | src/ast/item.hpp | 2 | ||||
-rw-r--r-- | src/ast/item_test.cpp | 20 |
3 files changed, 14 insertions, 9 deletions
diff --git a/src/ast/item.cpp b/src/ast/item.cpp index d27e231..623f5c6 100644 --- a/src/ast/item.cpp +++ b/src/ast/item.cpp @@ -142,6 +142,7 @@ namespace item SPAN_EXTRACT(TRY_UNWRAP(lex_nonscript(lr, false), return EOL_ERROR(lr)), item.wlv); SPAN_EXTRACT(TRY_UNWRAP(lex_nonscript(lr, false), return EOL_ERROR(lr)), item.elv); SPAN_EXTRACT(TRY_UNWRAP(lex_nonscript(lr, false), return EOL_ERROR(lr)), item.view); + SPAN_EXTRACT(TRY_UNWRAP(lex_nonscript(lr, false), return EOL_ERROR(lr)), item.mode); item.use_script = TRY(lex_script(lr)); item.equip_script = TRY(lex_script(lr)); ItemOrComment rv = std::move(item); diff --git a/src/ast/item.hpp b/src/ast/item.hpp index c772655..90d51a1 100644 --- a/src/ast/item.hpp +++ b/src/ast/item.hpp @@ -63,6 +63,8 @@ namespace item Spanned<int> wlv; Spanned<int> elv; Spanned<ItemLook> view; + Spanned<ItemMode> mode; + ast::script::ScriptBody use_script; ast::script::ScriptBody equip_script; }; diff --git a/src/ast/item_test.cpp b/src/ast/item_test.cpp index 7bb7193..33ed9cb 100644 --- a/src/ast/item_test.cpp +++ b/src/ast/item_test.cpp @@ -87,11 +87,11 @@ namespace item QuietFd q; LString inputs[] = { - // 1 2 3 4 5 - //2345678901234567890123456789012345678901234567890123456789 - "1,abc , 3,4,5,6,7,8,9,10,xx,2,16,12,13,11, {end;}, {}"_s, - "1,abc , 3,4,5,6,7,8,9,10,xx,2,16,12,13,11, {end;}, {}\n"_s, - "1,abc , 3,4,5,6,7,8,9,10,xx,2,16,12,13,11, {end;}, {}\nabc"_s, + // 1 2 3 4 5 6 + //23456789012345678901234567890123456789012345678901234567890123456789 + "1,abc , 3,4,5,6,7,8,9,10,xx,2,16,12,13,11,1, {end;}, {}"_s, + "1,abc , 3,4,5,6,7,8,9,10,xx,2,16,12,13,11,1, {end;}, {}\n"_s, + "1,abc , 3,4,5,6,7,8,9,10,xx,2,16,12,13,11,1, {end;}, {}\nabc"_s, }; for (auto input : inputs) { @@ -99,7 +99,7 @@ namespace item auto res = TRY_UNWRAP(parse_item(lr), FAIL()); EXPECT_TRUE(res.get_success().is_some()); auto top = TRY_UNWRAP(std::move(res.get_success()), FAIL()); - EXPECT_SPAN(top.span, 1,1, 1,58); + EXPECT_SPAN(top.span, 1,1, 1,60); auto p = top.get_if<Item>(); EXPECT_TRUE(p); if (p) @@ -135,10 +135,12 @@ namespace item EXPECT_SPAN(p->elv.span, 1,42, 1,43); EXPECT_EQ(p->elv.data, 13); EXPECT_SPAN(p->view.span, 1,45, 1,46); - EXPECT_EQ(p->view.data, ItemLook::BOW); - EXPECT_SPAN(p->use_script.span, 1,49, 1,54); + EXPECT_EQ(p->view.data, ItemLook::W_BOW); + EXPECT_SPAN(p->mode.span, 1,48, 1,48); + EXPECT_EQ(p->mode.data, ItemMode::NO_DROP); + EXPECT_SPAN(p->use_script.span, 1,51, 1,56); EXPECT_EQ(p->use_script.braced_body, "{end;}"_s); - EXPECT_SPAN(p->equip_script.span, 1,57, 1,58); + EXPECT_SPAN(p->equip_script.span, 1,59, 1,60); EXPECT_EQ(p->equip_script.braced_body, "{}"_s); } } |