From e35af02c4c9cb526561a16d24af15dfc9c382f58 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 20 May 2015 12:30:17 +0200
Subject: [PATCH] rank is unsigned integer

---
 .../determinize/DeterminizeNFTAPart.cxx       |  2 +-
 alib2algo/src/automaton/run/Accept.cpp        |  2 +-
 alib2data/src/alphabet/RankedBarSymbol.cpp    |  6 ++---
 alib2data/src/alphabet/RankedBarSymbol.h      |  8 +++---
 alib2data/src/alphabet/RankedSymbol.cpp       | 10 +++----
 alib2data/src/alphabet/RankedSymbol.h         | 10 +++----
 .../src/alphabet/SymbolFromXMLParser.cpp      |  4 +--
 .../src/alphabet/SymbolToXMLComposer.cpp      |  4 +--
 alib2data/src/automaton/TA/DFTA.cpp           |  2 +-
 alib2data/src/automaton/TA/NFTA.cpp           |  2 +-
 .../src/tree/ranked/PrefixRankedNotation.cpp  | 24 ++++++++---------
 .../src/tree/ranked/PrefixRankedNotation.h    |  1 +
 alib2data/src/tree/ranked/RankedNode.cpp      |  2 +-
 alib2data/src/tree/unranked/UnrankedNode.cpp  |  4 +--
 examples2/automaton/DFTA.xml                  |  2 +-
 examples2/automaton/NFTA.xml                  |  2 +-
 examples2/tree/RankedTree.xml                 | 14 +++++-----
 examples2/tree/RankedTree2.xml                | 26 +++++++++----------
 18 files changed, 63 insertions(+), 62 deletions(-)

diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
index 897f6057cf..2569e8dc09 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeNFTAPart.cxx
@@ -20,7 +20,7 @@ std::set<State> getTransitionRightSide(const NFTA & nfta, const alphabet::Ranked
 	for (const auto & transition : nfta.getTransitions()) {
 		if (transition.first.first != symbol) continue;
 
-		int i = symbol.getRank().getData() - 1;
+		int i = (int) symbol.getRank().getData() - 1; //TODO az budou testy predelat na unsigned
 		for (; i >= 0; i--)
 			if (!recreateNFAStates(states[i]).count(transition.first.second[i])) break;
 
diff --git a/alib2algo/src/automaton/run/Accept.cpp b/alib2algo/src/automaton/run/Accept.cpp
index 36682d9f9f..f594e91070 100644
--- a/alib2algo/src/automaton/run/Accept.cpp
+++ b/alib2algo/src/automaton/run/Accept.cpp
@@ -79,7 +79,7 @@ std::set<State> calculateStates(const automaton::NFTA& automaton, const tree::Ra
 	std::set<State> res;
 	for (const auto & transition : automaton.getTransitions()) {
 		if (transition.first.first != node.getSymbol()) continue;
-		int i = transition.first.first.getRank().getData() - 1;
+		int i = (int) transition.first.first.getRank().getData() - 1; //TODO az budou testy upravit na unsigned
 		for(; i >= 0 ; i--)
 			if (!states[i].count(transition.first.second[i])) break;
 		
diff --git a/alib2data/src/alphabet/RankedBarSymbol.cpp b/alib2data/src/alphabet/RankedBarSymbol.cpp
index cc8554e769..de3ef5be6b 100644
--- a/alib2data/src/alphabet/RankedBarSymbol.cpp
+++ b/alib2data/src/alphabet/RankedBarSymbol.cpp
@@ -9,11 +9,11 @@
 
 namespace alphabet {
 
-RankedBarSymbol::RankedBarSymbol(int rank) : rank(primitive::Integer(rank)) {
+RankedBarSymbol::RankedBarSymbol(int rank) : rank(primitive::Unsigned(rank)) {
 
 }
 
-RankedBarSymbol::RankedBarSymbol(primitive::Integer rank) : rank(std::move(rank)) {
+RankedBarSymbol::RankedBarSymbol(primitive::Unsigned rank) : rank(std::move(rank)) {
 
 }
 
@@ -25,7 +25,7 @@ SymbolBase* RankedBarSymbol::plunder() && {
 	return new RankedBarSymbol(std::move(*this));
 }
 
-const primitive::Integer& RankedBarSymbol::getRank() const {
+const primitive::Unsigned& RankedBarSymbol::getRank() const {
 	return rank;
 }
 
diff --git a/alib2data/src/alphabet/RankedBarSymbol.h b/alib2data/src/alphabet/RankedBarSymbol.h
index 923fc5280b..f285c1543a 100644
--- a/alib2data/src/alphabet/RankedBarSymbol.h
+++ b/alib2data/src/alphabet/RankedBarSymbol.h
@@ -9,7 +9,7 @@
 #define RANKED_BAR_SYMBOL_H_
 
 #include "Symbol.h"
-#include "../primitive/Integer.h"
+#include "../primitive/Unsigned.h"
 
 namespace alphabet {
 
@@ -17,14 +17,14 @@ namespace alphabet {
  * Represents rankedBar symbol for tree linearization.
  */
 class RankedBarSymbol : public std::acceptor<RankedBarSymbol, VisitableSymbolBase, std::acceptor<RankedBarSymbol, alib::VisitableObjectBase, SymbolBase> > {
-	primitive::Integer rank;
+	primitive::Unsigned rank;
 public:
 	/**
 	 * Creates a rankedBar symbol.
 	 * @param symbol name of the symbol
 	 */
 	explicit RankedBarSymbol(int rank);
-	explicit RankedBarSymbol(primitive::Integer rank);
+	explicit RankedBarSymbol(primitive::Unsigned rank);
 
 	virtual SymbolBase* clone() const;
 	virtual SymbolBase* plunder() &&;
@@ -32,7 +32,7 @@ public:
 	/**
 	 * @return rank of the symbol
 	 */
-	const primitive::Integer& getRank() const;
+	const primitive::Unsigned& getRank() const;
 
 	virtual int compare(const ObjectBase& other) const {
 		return -other.compare(*this);
diff --git a/alib2data/src/alphabet/RankedSymbol.cpp b/alib2data/src/alphabet/RankedSymbol.cpp
index a0a14968e2..7021c0cbbb 100644
--- a/alib2data/src/alphabet/RankedSymbol.cpp
+++ b/alib2data/src/alphabet/RankedSymbol.cpp
@@ -9,19 +9,19 @@
 
 namespace alphabet {
 
-RankedSymbol::RankedSymbol(int number, int rank) : label(label::labelFrom(number)), rank(primitive::Integer(rank)) {
+RankedSymbol::RankedSymbol(int number, int rank) : label(label::labelFrom(number)), rank(primitive::Unsigned(rank)) {
 
 }
 
-RankedSymbol::RankedSymbol(char character, int rank) : label(label::labelFrom(character)), rank(primitive::Integer(rank)) {
+RankedSymbol::RankedSymbol(char character, int rank) : label(label::labelFrom(character)), rank(primitive::Unsigned(rank)) {
 
 }
 
-RankedSymbol::RankedSymbol(std::string label, int rank) : label(label::labelFrom(std::move(label))), rank(primitive::Integer(rank)) {
+RankedSymbol::RankedSymbol(std::string label, int rank) : label(label::labelFrom(std::move(label))), rank(primitive::Unsigned(rank)) {
 
 }
 
-RankedSymbol::RankedSymbol(label::Label label, primitive::Integer rank) : label(std::move(label)), rank(std::move(rank)) {
+RankedSymbol::RankedSymbol(label::Label label, primitive::Unsigned rank) : label(std::move(label)), rank(std::move(rank)) {
 
 }
 
@@ -37,7 +37,7 @@ const label::Label& RankedSymbol::getLabel() const {
 	return label;
 }
 
-const primitive::Integer& RankedSymbol::getRank() const {
+const primitive::Unsigned& RankedSymbol::getRank() const {
 	return rank;
 }
 
diff --git a/alib2data/src/alphabet/RankedSymbol.h b/alib2data/src/alphabet/RankedSymbol.h
index 93f91d3893..d1591ae9ea 100644
--- a/alib2data/src/alphabet/RankedSymbol.h
+++ b/alib2data/src/alphabet/RankedSymbol.h
@@ -11,7 +11,7 @@
 #include "../label/Label.h"
 #include "SymbolBase.h"
 #include <ostream>
-#include "../primitive/Integer.h"
+#include "../primitive/Unsigned.h"
 
 namespace alphabet {
 
@@ -21,8 +21,8 @@ namespace alphabet {
 class RankedSymbol : public std::acceptor<RankedSymbol, VisitableSymbolBase, std::acceptor<RankedSymbol, alib::VisitableObjectBase, SymbolBase> > {
 protected:
 	label::Label label;
-	primitive::Integer rank;
-	
+	primitive::Unsigned rank;
+
 public:
 	explicit RankedSymbol(int number, int rank);
 	explicit RankedSymbol(char character, int rank);
@@ -33,7 +33,7 @@ public:
 	 * @param symbol name of the symbol
 	 * @param rank of the symbol
 	 */
-	explicit RankedSymbol(label::Label label, primitive::Integer rank);
+	explicit RankedSymbol(label::Label label, primitive::Unsigned rank);
 
 	virtual SymbolBase* clone() const;
 	virtual SymbolBase* plunder() &&;
@@ -46,7 +46,7 @@ public:
 	/**
 	 * @return rank of the symbol
 	 */
-	const primitive::Integer& getRank() const;
+	const primitive::Unsigned& getRank() const;
 
 	virtual int compare(const ObjectBase& other) const {
 		return -other.compare(*this);
diff --git a/alib2data/src/alphabet/SymbolFromXMLParser.cpp b/alib2data/src/alphabet/SymbolFromXMLParser.cpp
index 3089546ffe..a2499534c3 100644
--- a/alib2data/src/alphabet/SymbolFromXMLParser.cpp
+++ b/alib2data/src/alphabet/SymbolFromXMLParser.cpp
@@ -102,7 +102,7 @@ StartSymbol SymbolFromXMLParser::parseStartSymbol(std::deque<sax::Token>& input)
 RankedSymbol SymbolFromXMLParser::parseRankedSymbol(std::deque<sax::Token>& input) const {
 	popToken(input, sax::Token::TokenType::START_ELEMENT, alib::Names::ALPHABET_RANKED_SYMBOL);
 	label::Label data = alib::xmlApi<label::Label>::parse(input);
-	primitive::Integer rank = alib::xmlApi<primitive::Integer>::parse(input);
+	primitive::Unsigned rank = alib::xmlApi<primitive::Unsigned>::parse(input);
 	popToken(input, sax::Token::TokenType::END_ELEMENT, alib::Names::ALPHABET_RANKED_SYMBOL);
 	return RankedSymbol(std::move(data), std::move(rank));
 }
@@ -115,7 +115,7 @@ BarSymbol SymbolFromXMLParser::parseBarSymbol(std::deque<sax::Token>& input) con
 
 RankedBarSymbol SymbolFromXMLParser::parseRankedBarSymbol(std::deque<sax::Token>& input) const {
 	popToken(input, sax::Token::TokenType::START_ELEMENT, alib::Names::ALPHABET_RANKED_BAR_SYMBOL);
-	primitive::Integer rank = alib::xmlApi<primitive::Integer>::parse(input);
+	primitive::Unsigned rank = alib::xmlApi<primitive::Unsigned>::parse(input);
 	popToken(input, sax::Token::TokenType::END_ELEMENT, alib::Names::ALPHABET_RANKED_BAR_SYMBOL);
 	return RankedBarSymbol(std::move(rank));
 }
diff --git a/alib2data/src/alphabet/SymbolToXMLComposer.cpp b/alib2data/src/alphabet/SymbolToXMLComposer.cpp
index 2bd45e0937..97a596f4df 100644
--- a/alib2data/src/alphabet/SymbolToXMLComposer.cpp
+++ b/alib2data/src/alphabet/SymbolToXMLComposer.cpp
@@ -48,7 +48,7 @@ void SymbolToXMLComposer::compose(std::deque<sax::Token>& out, const StartSymbol
 void SymbolToXMLComposer::compose(std::deque<sax::Token>& out, const RankedSymbol& symbol) const {
 	out.emplace_back(alib::Names::ALPHABET_RANKED_SYMBOL, sax::Token::TokenType::START_ELEMENT);
 	alib::xmlApi<label::Label>::compose(out, symbol.getLabel());
-	alib::xmlApi<primitive::Integer>::compose(out, symbol.getRank());
+	alib::xmlApi<primitive::Unsigned>::compose(out, symbol.getRank());
 	out.emplace_back(alib::Names::ALPHABET_RANKED_SYMBOL, sax::Token::TokenType::END_ELEMENT);
 }
 
@@ -59,7 +59,7 @@ void SymbolToXMLComposer::compose(std::deque<sax::Token>& out, const BarSymbol&)
 
 void SymbolToXMLComposer::compose(std::deque<sax::Token>& out, const RankedBarSymbol& symbol) const {
 	out.emplace_back(alib::Names::ALPHABET_RANKED_BAR_SYMBOL, sax::Token::TokenType::START_ELEMENT);
-	alib::xmlApi<primitive::Integer>::compose(out, symbol.getRank());
+	alib::xmlApi<primitive::Unsigned>::compose(out, symbol.getRank());
 	out.emplace_back(alib::Names::ALPHABET_RANKED_BAR_SYMBOL, sax::Token::TokenType::END_ELEMENT);
 }
 
diff --git a/alib2data/src/automaton/TA/DFTA.cpp b/alib2data/src/automaton/TA/DFTA.cpp
index 12be0fa0e0..fe00153de1 100644
--- a/alib2data/src/automaton/TA/DFTA.cpp
+++ b/alib2data/src/automaton/TA/DFTA.cpp
@@ -52,7 +52,7 @@ bool DFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) {
 
 bool DFTA::addTransition(const alphabet::RankedSymbol & symbol, const std::vector<State> & prevStates, const State & next) {
 
-	if ((int) prevStates.size() != symbol.getRank().getData())
+	if (prevStates.size() != symbol.getRank().getData())
 		throw AutomatonException("Number of states doesn't match rank of the symbol");
 
 	if (inputAlphabet.find(symbol) == inputAlphabet.end())
diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp
index cb0919664a..fce9ee97f1 100644
--- a/alib2data/src/automaton/TA/NFTA.cpp
+++ b/alib2data/src/automaton/TA/NFTA.cpp
@@ -61,7 +61,7 @@ bool NFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) {
 
 bool NFTA::addTransition(const alphabet::RankedSymbol & symbol, const std::vector<State> & prevStates, const State & next) {
 
-	if ((int) prevStates.size() != symbol.getRank().getData())
+	if (prevStates.size() != symbol.getRank().getData())
 		throw AutomatonException("Number of states doesn't match rank of the symbol");
 
 	if (inputAlphabet.find(symbol) == inputAlphabet.end())
diff --git a/alib2data/src/tree/ranked/PrefixRankedNotation.cpp b/alib2data/src/tree/ranked/PrefixRankedNotation.cpp
index dac30fdc5b..7bdb5e629f 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNotation.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedNotation.cpp
@@ -22,12 +22,7 @@ PrefixRankedNotation::PrefixRankedNotation(std::set<alphabet::RankedSymbol> alph
 }
 
 PrefixRankedNotation::PrefixRankedNotation(std::vector<alphabet::RankedSymbol> data) {
-	int arityChecksum = 1;
-	for(const alphabet::RankedSymbol& symbol : data) {
-		arityChecksum += symbol.getRank().getData() - 1;
-	}
-
-	if(arityChecksum != 0) throw exception::AlibException("The string does not form a tree");
+	arityChecksum(data);
 
 	alphabet = std::set<alphabet::RankedSymbol>(data.begin(), data.end());
 	m_Data = std::move(data);
@@ -67,12 +62,7 @@ const std::vector<alphabet::RankedSymbol>& PrefixRankedNotation::getContent() co
 }
 
 void PrefixRankedNotation::setContent(std::vector<alphabet::RankedSymbol> data) {
-	int arityChecksum = 1;
-	for(const alphabet::RankedSymbol& symbol : data) {
-		arityChecksum += symbol.getRank().getData() - 1;
-	}
-
-	if(arityChecksum != 0) throw exception::AlibException("The string does not form a tree");
+	arityChecksum(data);
 
 	std::set<alphabet::RankedSymbol> minimalAlphabet(data.begin(), data.end());
 	std::set<alphabet::RankedSymbol> unknownSymbols;
@@ -84,6 +74,16 @@ void PrefixRankedNotation::setContent(std::vector<alphabet::RankedSymbol> data)
 	this->m_Data = std::move(data);
 }
 
+void PrefixRankedNotation::arityChecksum(const std::vector<alphabet::RankedSymbol>& data) {
+	int arityChecksum = 1;
+	for(const alphabet::RankedSymbol& symbol : data) {
+		arityChecksum += symbol.getRank().getData();
+		arityChecksum -= 1;
+	}
+
+	if(arityChecksum != 0) throw exception::AlibException("The string does not form a tree");
+}
+
 bool PrefixRankedNotation::isEmpty() const {
 	return this->m_Data.size() == 0;
 }
diff --git a/alib2data/src/tree/ranked/PrefixRankedNotation.h b/alib2data/src/tree/ranked/PrefixRankedNotation.h
index 6ac8a80b87..c3e069d015 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNotation.h
+++ b/alib2data/src/tree/ranked/PrefixRankedNotation.h
@@ -41,6 +41,7 @@ public:
 
 	void setContent(std::vector<alphabet::RankedSymbol> data);
 
+	void arityChecksum(const std::vector<alphabet::RankedSymbol>& data);
 	/**
 	 * @return true if tree is an empty word (vector length is 0)
 	 */
diff --git a/alib2data/src/tree/ranked/RankedNode.cpp b/alib2data/src/tree/ranked/RankedNode.cpp
index 12e6c0b739..381eafda14 100644
--- a/alib2data/src/tree/ranked/RankedNode.cpp
+++ b/alib2data/src/tree/ranked/RankedNode.cpp
@@ -14,7 +14,7 @@
 namespace tree {
 
 RankedNode::RankedNode(alphabet::RankedSymbol symbol, std::vector<RankedNode *> children) : symbol(std::move(symbol)), children(std::move(children)), parentTree(NULL)  {
-	if((int) this->children.size() != this->symbol.getRank().getData()) throw TreeException("Number of children doesn't match the rank of the symbol");
+	if(this->children.size() != this->symbol.getRank().getData()) throw TreeException("Number of children doesn't match the rank of the symbol");
 	for (auto& element : this->children) {
 		element->parent = this;
 	}
diff --git a/alib2data/src/tree/unranked/UnrankedNode.cpp b/alib2data/src/tree/unranked/UnrankedNode.cpp
index 19c30cb767..6013ea8c4b 100644
--- a/alib2data/src/tree/unranked/UnrankedNode.cpp
+++ b/alib2data/src/tree/unranked/UnrankedNode.cpp
@@ -10,7 +10,7 @@
 #include "../TreeException.h"
 #include "../ranked/RankedNode.h"
 #include <sstream>
-#include "../../primitive/Integer.h"
+#include "../../primitive/Unsigned.h"
 
 namespace tree {
 
@@ -121,7 +121,7 @@ RankedNode* UnrankedNode::cloneAsRanked() const {
 	for(const UnrankedNode* child : this->children) {
 		clonedChildren.push_back(child->cloneAsRanked());
 	}
-	return new RankedNode(alphabet::RankedSymbol(this->symbol.getLabel(), primitive::Integer(clonedChildren.size())), std::move(clonedChildren));
+	return new RankedNode(alphabet::RankedSymbol(this->symbol.getLabel(), primitive::Unsigned(clonedChildren.size())), std::move(clonedChildren));
 }
 
 int UnrankedNode::compare(const UnrankedNode& other) const {
diff --git a/examples2/automaton/DFTA.xml b/examples2/automaton/DFTA.xml
index 4183107b6d..403a296271 100644
--- a/examples2/automaton/DFTA.xml
+++ b/examples2/automaton/DFTA.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0"?>
-<DFTA><states><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></states><rankedInputAlphabet><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Integer>1</Integer></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Integer>0</Integer></RankedSymbol></rankedInputAlphabet><finalStates><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></finalStates><transitions><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Integer>1</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Integer>1</Integer></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Integer>0</Integer></RankedSymbol></input><from/><to><LabelSetLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></LabelSetLabel></to></transition></transitions></DFTA>
+<DFTA><states><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></states><rankedInputAlphabet><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Unsigned>1</Unsigned></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Unsigned>0</Unsigned></RankedSymbol></rankedInputAlphabet><finalStates><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></finalStates><transitions><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Unsigned>1</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Unsigned>1</Unsigned></RankedSymbol></input><from><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></from><to><LabelSetLabel><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Unsigned>0</Unsigned></RankedSymbol></input><from/><to><LabelSetLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></LabelSetLabel></to></transition></transitions></DFTA>
diff --git a/examples2/automaton/NFTA.xml b/examples2/automaton/NFTA.xml
index 3896e43e27..2466b9dc39 100644
--- a/examples2/automaton/NFTA.xml
+++ b/examples2/automaton/NFTA.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0"?>
-<NFTA><states><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></states><rankedInputAlphabet><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Integer>1</Integer></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Integer>0</Integer></RankedSymbol></rankedInputAlphabet><finalStates><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></finalStates><transitions><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></from><to><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></from><to><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Integer>2</Integer></RankedSymbol></input><from><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></from><to><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Integer>1</Integer></RankedSymbol></input><from><PrimitiveLabel><Integer>2</Integer></PrimitiveLabel></from><to><PrimitiveLabel><Integer>1</Integer></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Integer>0</Integer></RankedSymbol></input><from/><to><PrimitiveLabel><Integer>3</Integer></PrimitiveLabel></to></transition></transitions></NFTA>
+<NFTA><states><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></states><rankedInputAlphabet><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Unsigned>1</Unsigned></RankedSymbol><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Unsigned>0</Unsigned></RankedSymbol></rankedInputAlphabet><finalStates><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></finalStates><transitions><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></from><to><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></from><to><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel><Unsigned>2</Unsigned></RankedSymbol></input><from><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></from><to><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel><Unsigned>1</Unsigned></RankedSymbol></input><from><PrimitiveLabel><Unsigned>2</Unsigned></PrimitiveLabel></from><to><PrimitiveLabel><Unsigned>1</Unsigned></PrimitiveLabel></to></transition><transition><input><RankedSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel><Unsigned>0</Unsigned></RankedSymbol></input><from/><to><PrimitiveLabel><Unsigned>3</Unsigned></PrimitiveLabel></to></transition></transitions></NFTA>
diff --git a/examples2/tree/RankedTree.xml b/examples2/tree/RankedTree.xml
index bdf21190ff..f397d52b31 100644
--- a/examples2/tree/RankedTree.xml
+++ b/examples2/tree/RankedTree.xml
@@ -5,19 +5,19 @@
       <PrimitiveLabel>
         <Character>a</Character>
       </PrimitiveLabel>
-      <Integer>2</Integer>
+      <Unsigned>2</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
       <PrimitiveLabel>
         <Character>b</Character>
       </PrimitiveLabel>
-      <Integer>1</Integer>
+      <Unsigned>1</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
       <PrimitiveLabel>
         <Character>c</Character>
       </PrimitiveLabel>
-      <Integer>0</Integer>
+      <Unsigned>0</Unsigned>
     </RankedSymbol>
   </rankedAlphabet>
   <rankedNode>
@@ -25,21 +25,21 @@
       <PrimitiveLabel>
         <Character>b</Character>
       </PrimitiveLabel>
-      <Integer>1</Integer>
+      <Unsigned>1</Unsigned>
     </RankedSymbol>
     <rankedNode>
       <RankedSymbol>
         <PrimitiveLabel>
           <Character>a</Character>
         </PrimitiveLabel>
-        <Integer>2</Integer>
+        <Unsigned>2</Unsigned>
       </RankedSymbol>
       <rankedNode>
         <RankedSymbol>
           <PrimitiveLabel>
             <Character>c</Character>
           </PrimitiveLabel>
-          <Integer>0</Integer>
+          <Unsigned>0</Unsigned>
         </RankedSymbol>
       </rankedNode>
       <rankedNode>
@@ -47,7 +47,7 @@
           <PrimitiveLabel>
             <Character>c</Character>
           </PrimitiveLabel>
-          <Integer>0</Integer>
+          <Unsigned>0</Unsigned>
         </RankedSymbol>
       </rankedNode>
     </rankedNode>
diff --git a/examples2/tree/RankedTree2.xml b/examples2/tree/RankedTree2.xml
index 24601d1d27..4bf50c0256 100644
--- a/examples2/tree/RankedTree2.xml
+++ b/examples2/tree/RankedTree2.xml
@@ -5,19 +5,19 @@
       <PrimitiveLabel>
         <Character>a</Character>
       </PrimitiveLabel>
-      <Integer>2</Integer>
+      <Unsigned>2</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
       <PrimitiveLabel>
         <Character>b</Character>
       </PrimitiveLabel>
-      <Integer>1</Integer>
+      <Unsigned>1</Unsigned>
     </RankedSymbol>
     <RankedSymbol>
       <PrimitiveLabel>
         <Character>c</Character>
       </PrimitiveLabel>
-      <Integer>0</Integer>
+      <Unsigned>0</Unsigned>
     </RankedSymbol>
   </rankedAlphabet>
   <rankedNode>
@@ -25,42 +25,42 @@
       <PrimitiveLabel>
         <Character>a</Character>
       </PrimitiveLabel>
-      <Integer>2</Integer>
+      <Unsigned>2</Unsigned>
     </RankedSymbol>
     <rankedNode>
       <RankedSymbol>
         <PrimitiveLabel>
           <Character>a</Character>
         </PrimitiveLabel>
-        <Integer>2</Integer>
+        <Unsigned>2</Unsigned>
       </RankedSymbol>
       <rankedNode>
         <RankedSymbol>
           <PrimitiveLabel>
             <Character>a</Character>
           </PrimitiveLabel>
-          <Integer>2</Integer>
+          <Unsigned>2</Unsigned>
         </RankedSymbol>
         <rankedNode>
           <RankedSymbol>
             <PrimitiveLabel>
               <Character>b</Character>
             </PrimitiveLabel>
-            <Integer>1</Integer>
+            <Unsigned>1</Unsigned>
           </RankedSymbol>
           <rankedNode>
             <RankedSymbol>
               <PrimitiveLabel>
                 <Character>a</Character>
               </PrimitiveLabel>
-              <Integer>2</Integer>
+              <Unsigned>2</Unsigned>
             </RankedSymbol>
             <rankedNode>
               <RankedSymbol>
                 <PrimitiveLabel>
                   <Character>c</Character>
                 </PrimitiveLabel>
-                <Integer>0</Integer>
+                <Unsigned>0</Unsigned>
               </RankedSymbol>
             </rankedNode>
             <rankedNode>
@@ -68,7 +68,7 @@
                 <PrimitiveLabel>
                   <Character>c</Character>
                 </PrimitiveLabel>
-                <Integer>0</Integer>
+                <Unsigned>0</Unsigned>
               </RankedSymbol>
             </rankedNode>
           </rankedNode>
@@ -78,7 +78,7 @@
             <PrimitiveLabel>
               <Character>c</Character>
             </PrimitiveLabel>
-            <Integer>0</Integer>
+            <Unsigned>0</Unsigned>
           </RankedSymbol>
         </rankedNode>
       </rankedNode>
@@ -87,7 +87,7 @@
           <PrimitiveLabel>
             <Character>c</Character>
           </PrimitiveLabel>
-          <Integer>0</Integer>
+          <Unsigned>0</Unsigned>
         </RankedSymbol>
       </rankedNode>
     </rankedNode>
@@ -96,7 +96,7 @@
         <PrimitiveLabel>
           <Character>c</Character>
         </PrimitiveLabel>
-        <Integer>0</Integer>
+        <Unsigned>0</Unsigned>
       </RankedSymbol>
     </rankedNode>
   </rankedNode>
-- 
GitLab