Fix menu dvarStrList not working because of String chaining

This commit is contained in:
Jan
2021-12-28 11:49:42 +01:00
parent f8c79d27d0
commit d2262ebaec
4 changed files with 99 additions and 2 deletions

View File

@ -37,6 +37,11 @@ MatcherFactoryWrapper<SimpleParserValue> MenuMatcherFactory::Text() const
return MatcherFactoryWrapper(Or({StringChain(), Identifier()}));
}
MatcherFactoryWrapper<SimpleParserValue> MenuMatcherFactory::TextNoChain() const
{
return MatcherFactoryWrapper(Or({String(), Identifier()}));
}
MatcherFactoryWrapper<SimpleParserValue> MenuMatcherFactory::Numeric() const
{
return MatcherFactoryWrapper(Or({FloatingPoint(), Integer()}));

View File

@ -20,6 +20,7 @@ namespace menu
_NODISCARD MatcherFactoryWrapper<SimpleParserValue> StringChain() const;
_NODISCARD MatcherFactoryWrapper<SimpleParserValue> Text() const;
_NODISCARD MatcherFactoryWrapper<SimpleParserValue> TextNoChain() const;
_NODISCARD MatcherFactoryWrapper<SimpleParserValue> Numeric() const;
_NODISCARD MatcherFactoryWrapper<SimpleParserValue> IntExpression() const;

View File

@ -362,9 +362,9 @@ namespace menu::item_scope_sequences
create.KeywordIgnoreCase("dvarStrList").Capture(CAPTURE_FIRST_TOKEN),
create.Char('{'),
create.OptionalLoop(create.And({
create.Text().Capture(CAPTURE_STEP_NAME),
create.TextNoChain().Capture(CAPTURE_STEP_NAME),
create.Optional(create.Char(';')),
create.Text().Capture(CAPTURE_STEP_VALUE),
create.TextNoChain().Capture(CAPTURE_STEP_VALUE),
create.Optional(create.Char(';')),
})),
create.Char('}')