From 058b22e52f465d222f77a034f7964ce839c55bb0 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 5 May 2016 15:22:46 +0200
Subject: [PATCH] + symbol and ranked symbol wrappers when relevant

---
 alib2data/src/alphabet/BarSymbol.cpp              | 3 ++-
 alib2data/src/alphabet/BarSymbol.h                | 2 ++
 alib2data/src/alphabet/BlankSymbol.cpp            | 3 ++-
 alib2data/src/alphabet/BlankSymbol.h              | 2 ++
 alib2data/src/alphabet/BottomOfTheStackSymbol.cpp | 3 ++-
 alib2data/src/alphabet/BottomOfTheStackSymbol.h   | 2 ++
 alib2data/src/alphabet/EndSymbol.cpp              | 3 ++-
 alib2data/src/alphabet/EndSymbol.h                | 2 ++
 alib2data/src/alphabet/StartSymbol.cpp            | 3 ++-
 alib2data/src/alphabet/StartSymbol.h              | 2 ++
 alib2data/src/alphabet/SubtreeWildcardSymbol.cpp  | 4 +++-
 alib2data/src/alphabet/SubtreeWildcardSymbol.h    | 4 ++++
 alib2data/src/alphabet/VariablesBarSymbol.cpp     | 2 ++
 alib2data/src/alphabet/VariablesBarSymbol.h       | 4 ++++
 14 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/alib2data/src/alphabet/BarSymbol.cpp b/alib2data/src/alphabet/BarSymbol.cpp
index 1b555791f7..7eb612a332 100644
--- a/alib2data/src/alphabet/BarSymbol.cpp
+++ b/alib2data/src/alphabet/BarSymbol.cpp
@@ -38,7 +38,8 @@ BarSymbol::operator std::string () const {
 	return "|";
 }
 
-BarSymbol BarSymbol::BAR = BarSymbol();
+BarSymbol BarSymbol::BAR = BarSymbol ( );
+Symbol BarSymbol::BAR_SYMBOL = Symbol ( BarSymbol ( ) );
 
 const std::string BarSymbol::XML_TAG_NAME = "BarSymbol";
 
diff --git a/alib2data/src/alphabet/BarSymbol.h b/alib2data/src/alphabet/BarSymbol.h
index 9977ca8bc0..350ad3a8b9 100644
--- a/alib2data/src/alphabet/BarSymbol.h
+++ b/alib2data/src/alphabet/BarSymbol.h
@@ -9,6 +9,7 @@
 #define BAR_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
 
 namespace alphabet {
 
@@ -39,6 +40,7 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static BarSymbol BAR;
+	static Symbol BAR_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
diff --git a/alib2data/src/alphabet/BlankSymbol.cpp b/alib2data/src/alphabet/BlankSymbol.cpp
index 1aa35ba7ab..8383d38138 100644
--- a/alib2data/src/alphabet/BlankSymbol.cpp
+++ b/alib2data/src/alphabet/BlankSymbol.cpp
@@ -38,7 +38,8 @@ BlankSymbol::operator std::string () const {
 	return "B";
 }
 
-BlankSymbol BlankSymbol::BLANK = BlankSymbol();
+BlankSymbol BlankSymbol::BLANK = BlankSymbol ( );
+Symbol BlankSymbol::BLANK_SYMBOL = Symbol ( BlankSymbol ( ) );
 
 const std::string BlankSymbol::XML_TAG_NAME = "BlankSymbol";
 
diff --git a/alib2data/src/alphabet/BlankSymbol.h b/alib2data/src/alphabet/BlankSymbol.h
index 62efda43f1..45eb16caae 100644
--- a/alib2data/src/alphabet/BlankSymbol.h
+++ b/alib2data/src/alphabet/BlankSymbol.h
@@ -9,6 +9,7 @@
 #define BLANK_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
 
 namespace alphabet {
 
@@ -39,6 +40,7 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static BlankSymbol BLANK;
+	static Symbol BLANK_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp b/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp
index e0f3377599..a1545fd1ae 100644
--- a/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp
+++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp
@@ -38,7 +38,8 @@ BottomOfTheStackSymbol::operator std::string () const {
 	return "T";
 }
 
-BottomOfTheStackSymbol BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK = BottomOfTheStackSymbol();
+BottomOfTheStackSymbol BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK = BottomOfTheStackSymbol ( );
+Symbol BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK_SYMBOL = Symbol ( BottomOfTheStackSymbol ( ) );
 
 const std::string BottomOfTheStackSymbol::XML_TAG_NAME = "BottomOfTheStackSymbol";
 
diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.h b/alib2data/src/alphabet/BottomOfTheStackSymbol.h
index 05d81fcddb..ecf0636547 100644
--- a/alib2data/src/alphabet/BottomOfTheStackSymbol.h
+++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.h
@@ -9,6 +9,7 @@
 #define BOTTOM_OF_THE_STACK_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
 
 namespace alphabet {
 
@@ -39,6 +40,7 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static BottomOfTheStackSymbol BOTTOM_OF_THE_STACK;
+	static Symbol BOTTOM_OF_THE_STACK_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
diff --git a/alib2data/src/alphabet/EndSymbol.cpp b/alib2data/src/alphabet/EndSymbol.cpp
index 8448b8c73b..792c80185a 100644
--- a/alib2data/src/alphabet/EndSymbol.cpp
+++ b/alib2data/src/alphabet/EndSymbol.cpp
@@ -38,7 +38,8 @@ EndSymbol::operator std::string () const {
 	return "$";
 }
 
-EndSymbol EndSymbol::END = EndSymbol();
+EndSymbol EndSymbol::END = EndSymbol ( );
+Symbol EndSymbol::END_SYMBOL = Symbol ( EndSymbol ( ) );
 
 const std::string EndSymbol::XML_TAG_NAME = "EndSymbol";
 
diff --git a/alib2data/src/alphabet/EndSymbol.h b/alib2data/src/alphabet/EndSymbol.h
index a0b454b75d..377eb2d36e 100644
--- a/alib2data/src/alphabet/EndSymbol.h
+++ b/alib2data/src/alphabet/EndSymbol.h
@@ -9,6 +9,7 @@
 #define END_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
 
 namespace alphabet {
 
@@ -39,6 +40,7 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static EndSymbol END;
+	static Symbol END_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
diff --git a/alib2data/src/alphabet/StartSymbol.cpp b/alib2data/src/alphabet/StartSymbol.cpp
index d6ece36930..6a627cf28a 100644
--- a/alib2data/src/alphabet/StartSymbol.cpp
+++ b/alib2data/src/alphabet/StartSymbol.cpp
@@ -38,7 +38,8 @@ StartSymbol::operator std::string () const {
 	return "$";
 }
 
-StartSymbol StartSymbol::START = StartSymbol();
+StartSymbol StartSymbol::START = StartSymbol ( );
+Symbol StartSymbol::START_SYMBOL = Symbol ( StartSymbol ( ) );
 
 const std::string StartSymbol::XML_TAG_NAME = "StartSymbol";
 
diff --git a/alib2data/src/alphabet/StartSymbol.h b/alib2data/src/alphabet/StartSymbol.h
index e05c89f972..db050efbcf 100644
--- a/alib2data/src/alphabet/StartSymbol.h
+++ b/alib2data/src/alphabet/StartSymbol.h
@@ -9,6 +9,7 @@
 #define START_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
 
 namespace alphabet {
 
@@ -39,6 +40,7 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static StartSymbol START;
+	static Symbol START_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp b/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
index b4c614c1a9..77ce1b695e 100644
--- a/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
+++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
@@ -38,7 +38,9 @@ SubtreeWildcardSymbol::operator std::string () const {
 	return "#S";
 }
 
-SubtreeWildcardSymbol SubtreeWildcardSymbol::SUBTREE_WILDCARD = SubtreeWildcardSymbol();
+SubtreeWildcardSymbol SubtreeWildcardSymbol::SUBTREE_WILDCARD = SubtreeWildcardSymbol ( );
+Symbol SubtreeWildcardSymbol::SUBTREE_WILDCARD_SYMBOL = Symbol ( SubtreeWildcardSymbol ( ) );
+RankedSymbol SubtreeWildcardSymbol::RANKED_SUBTREE_WILDCARD_SYMBOL = RankedSymbol ( Symbol ( SubtreeWildcardSymbol ( ) ), 0);
 
 const std::string SubtreeWildcardSymbol::XML_TAG_NAME = "SubtreeWildcardSymbol";
 
diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/SubtreeWildcardSymbol.h
index ec4dc443d6..946a6d2c20 100644
--- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h
+++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.h
@@ -9,6 +9,8 @@
 #define SUBTREE_WILDCARD_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
+#include "RankedSymbol.h"
 
 namespace alphabet {
 
@@ -39,6 +41,8 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static SubtreeWildcardSymbol SUBTREE_WILDCARD;
+	static Symbol SUBTREE_WILDCARD_SYMBOL;
+	static RankedSymbol RANKED_SUBTREE_WILDCARD_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
diff --git a/alib2data/src/alphabet/VariablesBarSymbol.cpp b/alib2data/src/alphabet/VariablesBarSymbol.cpp
index a0660e9e2b..22fd597449 100644
--- a/alib2data/src/alphabet/VariablesBarSymbol.cpp
+++ b/alib2data/src/alphabet/VariablesBarSymbol.cpp
@@ -38,6 +38,8 @@ VariablesBarSymbol::operator std::string ( ) const {
 }
 
 VariablesBarSymbol VariablesBarSymbol::BAR = VariablesBarSymbol ( );
+Symbol VariablesBarSymbol::BAR_SYMBOL = Symbol ( VariablesBarSymbol ( ) );
+RankedSymbol VariablesBarSymbol::RANKED_BAR_SYMBOL = RankedSymbol ( Symbol ( VariablesBarSymbol ( ) ), 0);
 
 const std::string VariablesBarSymbol::XML_TAG_NAME = "VariablesBarSymbol";
 
diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h
index 50c053fcad..e24f4f8306 100644
--- a/alib2data/src/alphabet/VariablesBarSymbol.h
+++ b/alib2data/src/alphabet/VariablesBarSymbol.h
@@ -9,6 +9,8 @@
 #define VARIABLES_BAR_SYMBOL_H_
 
 #include "SymbolBase.h"
+#include "Symbol.h"
+#include "RankedSymbol.h"
 
 namespace alphabet {
 
@@ -39,6 +41,8 @@ public:
 	virtual explicit operator std::string ( ) const;
 
 	static VariablesBarSymbol BAR;
+	static Symbol BAR_SYMBOL;
+	static RankedSymbol RANKED_BAR_SYMBOL;
 
 	const static std::string XML_TAG_NAME;
 
-- 
GitLab