class AssignLocationAction
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
- st.ASTNode.Location = {in.line(), in.column()};
+ st.ASTNode.Location = {in.line(), in.byte_in_line()};
}
};
class AttributeAction<Grammar::Identifier>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, AttributeState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, AttributeState& st, TCommonStates&...)
{
st.ASTNode.Name = in.string();
}
class AttributeKeyAction<Grammar::Identifier>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, AttributeArgumentState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, AttributeArgumentState& st, TCommonStates&...)
{
st.ASTNode.Name = in.string();
}
class CompositionAction<Grammar::Identifier>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, CompositionState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, CompositionState& st, TCommonStates&...)
{
st.ASTNode.Name = in.string();
}
class TrackBlockAction<Grammar::UnsignedInteger>
{
public:
- template<typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, TrackBlockState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, TrackBlockState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class TrackItemAction<Grammar::Identifier>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, TrackItemState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, TrackItemState& st, TCommonStates&...)
{
st.ASTNode.PhraseName = in.string();
}
class CommandAction<Grammar::Identifier>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, CommandState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, CommandState& st, TCommonStates&...)
{
st.ASTNode.Name = in.string();
}
class ValueAction<Grammar::SignedInteger>
{
public:
- template<typename TState, typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TState, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class ValueAction<Grammar::Identifier>
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
st.ASTNode.Value = in.string();
}
class EscapeAction<Grammar::AnyChar>
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
pegtl::unescape::append_all::apply(in, st);
}
class EscapeAction<Grammar::EscapeX2>
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
pegtl::unescape::unescape_x::apply(in, st);
}
class EscapeAction<Grammar::EscapeU4>
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
pegtl::unescape::unescape_u::apply(in, st);
}
class EscapeAction<Grammar::EscapeU8>
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
pegtl::unescape::unescape_u::apply(in, st);
}
class EscapeAction<Grammar::EscapeC>
{
public:
- template<typename TState, typename... TCommonStates>
- static void apply(const pegtl::input& in, TState& st, TCommonStates&...)
+ template<typename TInput, typename TState, typename... TCommonStates>
+ static void apply(const TInput& in, TState& st, TCommonStates&...)
{
pegtl::unescape::unescape_c<Grammar::EscapeC, '\'', '"', '?', '\\', '\a', '\b', '\f', '\n', '\r', '\t', '\v'>::apply(in, st);
}
class PhraseAction<Grammar::Identifier>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, PhraseState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, PhraseState& st, TCommonStates&...)
{
st.ASTNode.Name = in.string();
}
class NoteRepeatEachExpressionAction<Grammar::UnsignedInteger>
{
public:
- template<typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteRepeatEachExpressionState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, NoteRepeatEachExpressionState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class NoteRepeatExpressionAction<Grammar::UnsignedInteger>
{
public:
- template<typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteRepeatExpressionState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, NoteRepeatExpressionState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class NoteAccentsAction<Grammar::NoteAccents>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteAccentsState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, NoteAccentsState& st, TCommonStates&...)
{
AssignLocationAction::apply(in, st);
class SimpleDurationModifierDotsAction<Grammar::SimpleDurationModifierDots>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleDurationModifierDotsState& st, TCommonStates&... commonStates)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, SimpleDurationModifierDotsState& st, TCommonStates&... commonStates)
{
AssignLocationAction::apply(in, st, commonStates...);
st.ASTNode.Count = static_cast<unsigned long>(in.size());
class SimpleDurationModifierAction<Grammar::UnsignedInteger>
{
public:
- template<typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleDurationModifierState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, SimpleDurationModifierState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class SimpleDurationAction<Grammar::UnsignedInteger>
{
public:
- template<typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleDurationState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, SimpleDurationState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class NoteOctaveAction<Grammar::SignedInteger>
{
public:
- template<typename TCompiler, typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteOctaveState& st, TCompiler& compiler, TCommonStates&...)
+ template<typename TInput, typename TCompiler, typename... TCommonStates>
+ static void apply(const TInput& in, NoteOctaveState& st, TCompiler& compiler, TCommonStates&...)
{
try
{
Message::MessageKind::Error,
Message::MessageID::IntegerOutOfRange,
compiler.GetSourceName(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{in.string()}
}
);
class NoteNameAction<Grammar::NoteNameBase>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteNameState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, NoteNameState& st, TCommonStates&...)
{
st.ASTNode.Name = in.string().at(0);
}
class NoteNameAction<Grammar::NoteNameKey>
{
public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteNameState& st, TCommonStates&...)
+ template<typename TInput, typename... TCommonStates>
+ static void apply(const TInput& in, NoteNameState& st, TCommonStates&...)
{
st.ASTNode.Minor = 0;
class TokenForErrorMessageAction<TokenForErrorMessage>
{
public:
- static void apply(const pegtl::input& in, std::string& st)
+ template<typename TInput>
+ static void apply(const TInput& in, std::string& st)
{
st = in.string();
}
};
-template<typename TInput>
-auto CreateParseErrorMessage(Message::MessageKind kind, Message::MessageID id, const TInput& in)
+auto CreateParseErrorMessage(Message::MessageKind kind, Message::MessageID id, const pegtl::memory_input& in)
{
std::string tokenForErrorMsg;
- bool matched = pegtl::parse<TokenForErrorMessageAndSeparators, TokenForErrorMessageAction>(
+ bool matched = pegtl::parse_memory<TokenForErrorMessageAndSeparators, TokenForErrorMessageAction>(
in.begin(),
- in.end(),
+ in.end(0),
in.source(),
tokenForErrorMsg
);
kind,
id,
in.source(),
- {in.line(), in.column()},
+ {in.line(), in.byte_in_line()},
{matched ? tokenForErrorMsg : "<EOF>"}
};
}
#ifdef _MSC_VER
#pragma warning(push)
+#pragma warning(disable: 4244) // conversion from 'const std::streamsize' to 'std::size_t', possible loss of data
#pragma warning(disable: 4702) // unreachable code
#endif
AST::Module ast;
ast.Name = GetSourceName();
- bool result = pegtl::parse<pegtl::try_catch<Grammar::Module>, pegtl::nothing, Control>(m_Source, m_Name, ast, *this);
+ bool result = pegtl::parse_string<pegtl::try_catch<Grammar::Module>, pegtl::nothing, Control>(m_Source, m_Name, ast, *this);
if (result && !HasErrors())
{
#ifdef _MSC_VER
#pragma warning(push)
+#pragma warning(disable: 4244) // conversion from 'const std::streamsize' to 'std::size_t', possible loss of data
#pragma warning(disable: 4702) // unreachable code
#pragma warning(disable: 4715) // not all control paths return a value
#endif
#ifdef _MSC_VER
#pragma warning(push)
+#pragma warning(disable: 4244) // conversion from 'const std::streamsize' to 'std::size_t', possible loss of data
#pragma warning(disable: 4702) // unreachable code
#endif
)";
- bool result = pegtl::parse<pegtl::must<Composition, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<Composition, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}
#ifdef _MSC_VER
#pragma warning(push)
+#pragma warning(disable: 4244) // conversion from 'const std::streamsize' to 'std::size_t', possible loss of data
#pragma warning(disable: 4702) // unreachable code
#endif
#include <boost/test/unit_test.hpp>
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 4244) // conversion from 'const std::streamsize' to 'std::size_t', possible loss of data
+#endif
+
#include <pegtl.hh>
-#include <pegtl/trace.hh>
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
#include "../../src/parser/parser_phrase.hpp"
BOOST_AUTO_TEST_CASE(NoteNameTest1)
{
std::string data = "As";
- bool result = pegtl::parse<pegtl::must<NoteName, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<NoteName, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}
BOOST_AUTO_TEST_CASE(NoteNumberTest1)
{
std::string data = "Bf4";
- bool result = pegtl::parse<pegtl::must<NoteNumber, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<NoteNumber, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}
BOOST_AUTO_TEST_CASE(NoteAndDurationTest1)
{
std::string data = "Bf4/8";
- bool result = pegtl::parse<pegtl::must<NoteAndDuration, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<NoteAndDuration, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}
BOOST_AUTO_TEST_CASE(NoteAndDurationTest2)
{
std::string data = "Bf4/*/*/ / 8";
- bool result = pegtl::parse<pegtl::must<NoteAndDuration, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<NoteAndDuration, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}
)";
- bool result = pegtl::parse<pegtl::must<Phrase, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<Phrase, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}
)";
- bool result = pegtl::parse<pegtl::must<Phrase, Separators, pegtl::eof>>(data, "source");
+ bool result = pegtl::parse_string<pegtl::must<Phrase, Separators, pegtl::eof>>(data, "source");
BOOST_CHECK(result);
}