#include <ast/module.hpp>
#include <parser/parser.hpp>
+#include "action.hpp"
#include "parser_composition.hpp"
namespace YAMML
};
template<>
-class CompositionAction<Grammar::Composition>
+class CompositionAction<Grammar::Composition> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, CompositionState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class TrackListBlockAction<Grammar::TrackListBlock>
+class TrackListBlockAction<Grammar::TrackListBlock> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, TrackListBlockState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class TrackBlockState
};
template<>
-class TrackBlockAction<Grammar::TrackBlock>
+class TrackBlockAction<Grammar::TrackBlock> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, TrackBlockState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class TrackItemAction<Grammar::TrackItem>
+class TrackItemAction<Grammar::TrackItem> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, TrackItemState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class CommandAction<Grammar::Command>
+class CommandAction<Grammar::Command> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, CommandState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class CommandArgumentAction<Grammar::CommandArgument>
+class CommandArgumentAction<Grammar::CommandArgument> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, CommandArgumentState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
} // namespace Parser
#include <ast/phrase.hpp>
#include <parser/parser.hpp>
+#include "action.hpp"
#include "parser_phrase.hpp"
namespace YAMML
};
template<>
-class PhraseAction<Grammar::Phrase>
+class PhraseAction<Grammar::Phrase> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, PhraseState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class NoteSequenceBlockAction<Grammar::NoteSequenceBlock>
+class NoteSequenceBlockAction<Grammar::NoteSequenceBlock> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteSequenceBlockState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteSequenceBlockWithoutAttributesState
};
template<>
-class NoteSequenceBlockWithoutAttributesAction<Grammar::NoteSequenceBlockWithoutAttributes>
+class NoteSequenceBlockWithoutAttributesAction<Grammar::NoteSequenceBlockWithoutAttributes> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteSequenceBlockWithoutAttributesState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteSequenceStatementState
};
template<>
-class NoteSequenceStatementAction<Grammar::NoteSequence>
+class NoteSequenceStatementAction<Grammar::NoteSequence> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteSequenceStatementState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteSequenceState
};
template<>
-class NoteSequenceAction<Grammar::NoteSequence>
+class NoteSequenceAction<Grammar::NoteSequence> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteSequenceState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteAndExpressionState
};
template<>
-class NoteAndExpressionAction<Grammar::NoteAndExpression>
+class NoteAndExpressionAction<Grammar::NoteAndExpression> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteAndExpressionState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteRepeatEachExpressionState
};
template<>
-class NoteRepeatEachExpressionAction<Grammar::NoteRepeatEachExpression>
+class NoteRepeatEachExpressionAction<Grammar::NoteRepeatEachExpression> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteRepeatEachExpressionState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class NoteRepeatExpressionAction<Grammar::NoteRepeatExpression>
+class NoteRepeatExpressionAction<Grammar::NoteRepeatExpression> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteRepeatExpressionState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class NoteAndDurationAction<Grammar::NoteAndDuration>
+class NoteAndDurationAction<Grammar::NoteAndDuration> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteAndDurationState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class DurationSetState
};
template<>
-class DurationSetAction<Grammar::DurationSet>
+class DurationSetAction<Grammar::DurationSet> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, DurationSetState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class SimpleDurationWithModifierState
};
template<>
-class SimpleDurationWithModifierAction<Grammar::SimpleDurationWithModifier>
+class SimpleDurationWithModifierAction<Grammar::SimpleDurationWithModifier> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleDurationWithModifierState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class SimpleDurationModifierState
};
template<>
-class SimpleDurationModifierAction<Grammar::SimpleDurationModifier>
+class SimpleDurationModifierAction<Grammar::SimpleDurationModifier> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleDurationModifierState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class SimpleDurationAction<Grammar::SimpleDuration>
+class SimpleDurationAction<Grammar::SimpleDuration> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleDurationState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class SimpleChordAction<Grammar::SimpleChord>
+class SimpleChordAction<Grammar::SimpleChord> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, SimpleChordState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteNumberState
};
template<>
-class NoteNumberAction<Grammar::NoteNumber>
+class NoteNumberAction<Grammar::NoteNumber> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteNumberState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
class NoteOctaveState
};
template<>
-class NoteOctaveAction<Grammar::NoteOctave>
+class NoteOctaveAction<Grammar::NoteOctave> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteOctaveState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class NoteNameAction<Grammar::NoteName>
+class NoteNameAction<Grammar::NoteName> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, NoteNameState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
template<>
};
template<>
-class RestAction<Grammar::Rest>
+class RestAction<Grammar::Rest> : public AssignLocationAction
{
-public:
- template<typename... TCommonStates>
- static void apply(const pegtl::input& in, RestState& st, TCommonStates&...)
- {
- st.ASTNode.Location = {in.line(), in.column()};
- }
};
} // namespace Parser