diff --git a/alib2data/src/automaton/common/State.cpp b/alib2data/src/automaton/common/State.cpp index f9fc60f8ea7e90eea146b605d8e56854034c0ee0..93114c833bae6552676b0293dd6b5510c86ef299 100644 --- a/alib2data/src/automaton/common/State.cpp +++ b/alib2data/src/automaton/common/State.cpp @@ -14,6 +14,9 @@ namespace automaton { State::State(label::Label name) : name(std::move(name)) { } +State::State(label::Label name1, label::Label name2) : name ( label::labelFrom ( std::move ( name1 ), std::move ( name2 ) ) ) { +} + State::State(int number) : name(label::labelFrom(number)) { } diff --git a/alib2data/src/automaton/common/State.h b/alib2data/src/automaton/common/State.h index 0f1f76be0d70c83d1e97f1cc5b8b4f8bfcf8984a..64820f1727861482ed6e4645ed0b3a455b7c3ee3 100644 --- a/alib2data/src/automaton/common/State.h +++ b/alib2data/src/automaton/common/State.h @@ -24,6 +24,7 @@ private: label::Label name; public: explicit State(label::Label name); + explicit State(label::Label name1, label::Label name2); explicit State(int number); explicit State(int number1, int number2); explicit State(char character); diff --git a/alib2data/src/label/Label.cpp b/alib2data/src/label/Label.cpp index 273c65c303c2d67a1bde90eeab2aba3b55d13ed9..dc96527f906867ba3b3099dad71fc90de6bc75f6 100644 --- a/alib2data/src/label/Label.cpp +++ b/alib2data/src/label/Label.cpp @@ -43,6 +43,16 @@ label::Label labelFrom ( int number1, int number2 ) { }; } +label::Label labelFrom ( label::Label label1, label::Label label2 ) { + return label::Label { + label::LabelPairLabel { + std::make_pair ( std::move ( label1 ), + std::move ( label2 ) + ) + } + }; +} + label::Label labelFrom ( char character ) { return label::Label { label::PrimitiveLabel { diff --git a/alib2data/src/label/Label.h b/alib2data/src/label/Label.h index e4541ad332c8d0409414c67ba3df81bedaad3019..0949a5b5e607d9851447b53767bd56c7e5b05a8a 100644 --- a/alib2data/src/label/Label.h +++ b/alib2data/src/label/Label.h @@ -30,6 +30,7 @@ public: } }; +label::Label labelFrom ( label::Label label1, label::Label label2 ); label::Label labelFrom ( int number ); label::Label labelFrom ( int number1, int number2 ); label::Label labelFrom ( char character );