Skip to content
Snippets Groups Projects
Commit bc8de25c authored by Jan Trávníček's avatar Jan Trávníček
Browse files

move hexavigesimal to ext namespace

parent fae1e9c0
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -32,7 +32,7 @@ grammar::RightRG < > Rename::rename ( const grammar::RightRG < > & rrg ) { ...@@ -32,7 +32,7 @@ grammar::RightRG < > Rename::rename ( const grammar::RightRG < > & rrg ) {
std::map < DefaultSymbolType, DefaultSymbolType > renamingData; std::map < DefaultSymbolType, DefaultSymbolType > renamingData;
   
for ( auto iter = rrg.getNonterminalAlphabet ( ).begin ( ); iter != rrg.getNonterminalAlphabet ( ).end ( ); iter++ ) for ( auto iter = rrg.getNonterminalAlphabet ( ).begin ( ); iter != rrg.getNonterminalAlphabet ( ).end ( ); iter++ )
renamingData.insert ( std::make_pair ( * iter, DefaultSymbolType ( std::toBase26 ( counter++ ) ) ) ); renamingData.insert ( std::make_pair ( * iter, DefaultSymbolType ( ext::toBase26 ( counter++ ) ) ) );
   
grammar::RightRG < > result ( renamingData.find ( rrg.getInitialSymbol ( ) )->second ); grammar::RightRG < > result ( renamingData.find ( rrg.getInitialSymbol ( ) )->second );
result.setGeneratesEpsilon ( rrg.getGeneratesEpsilon ( ) ); result.setGeneratesEpsilon ( rrg.getGeneratesEpsilon ( ) );
...@@ -70,7 +70,7 @@ grammar::LeftRG < > Rename::rename ( const grammar::LeftRG < > & rrg ) { ...@@ -70,7 +70,7 @@ grammar::LeftRG < > Rename::rename ( const grammar::LeftRG < > & rrg ) {
std::map < DefaultSymbolType, DefaultSymbolType > renamingData; std::map < DefaultSymbolType, DefaultSymbolType > renamingData;
   
for ( auto iter = rrg.getNonterminalAlphabet ( ).begin ( ); iter != rrg.getNonterminalAlphabet ( ).end ( ); iter++ ) for ( auto iter = rrg.getNonterminalAlphabet ( ).begin ( ); iter != rrg.getNonterminalAlphabet ( ).end ( ); iter++ )
renamingData.insert ( std::make_pair ( * iter, DefaultSymbolType ( std::toBase26 ( counter++ ) ) ) ); renamingData.insert ( std::make_pair ( * iter, DefaultSymbolType ( ext::toBase26 ( counter++ ) ) ) );
   
grammar::LeftRG < > result ( renamingData.find ( rrg.getInitialSymbol ( ) )->second ); grammar::LeftRG < > result ( renamingData.find ( rrg.getInitialSymbol ( ) )->second );
result.setGeneratesEpsilon ( rrg.getGeneratesEpsilon ( ) ); result.setGeneratesEpsilon ( rrg.getGeneratesEpsilon ( ) );
......
...@@ -66,7 +66,7 @@ automaton::DFA<> ToAutomatonDerivation::convert(const T& regexp) { ...@@ -66,7 +66,7 @@ automaton::DFA<> ToAutomatonDerivation::convert(const T& regexp) {
int stateId = 0; int stateId = 0;
   
for(const auto& r : Q) { for(const auto& r : Q) {
DefaultStateType q = DefaultStateType (std::toBase26(stateId++)); DefaultStateType q = DefaultStateType (ext::toBase26(stateId++));
stateMap.insert(std::make_pair(r, q)); stateMap.insert(std::make_pair(r, q));
} }
   
......
...@@ -76,7 +76,7 @@ grammar::RightRG < > ToGrammarRightRGDerivation::convert(const T& regexp) { ...@@ -76,7 +76,7 @@ grammar::RightRG < > ToGrammarRightRGDerivation::convert(const T& regexp) {
for(const auto & r : N) { for(const auto & r : N) {
if(V == r) continue; if(V == r) continue;
   
DefaultSymbolType nt = common::createUnique(DefaultSymbolType(std::toBase26(nonterminalId++)), grammar.getTerminalAlphabet(), grammar.getNonterminalAlphabet()); DefaultSymbolType nt = common::createUnique(DefaultSymbolType(ext::toBase26(nonterminalId++)), grammar.getTerminalAlphabet(), grammar.getNonterminalAlphabet());
nonterminalMap.insert(std::make_pair(r, nt)); nonterminalMap.insert(std::make_pair(r, nt));
grammar.addNonterminalSymbol(nt); grammar.addNonterminalSymbol(nt);
} }
......
...@@ -38,11 +38,11 @@ int HexavigesimalLabel::compare(const HexavigesimalLabel& other) const { ...@@ -38,11 +38,11 @@ int HexavigesimalLabel::compare(const HexavigesimalLabel& other) const {
} }
   
void HexavigesimalLabel::operator>>(std::ostream& out) const { void HexavigesimalLabel::operator>>(std::ostream& out) const {
out << "(HexavigesimalLabel " << std::toBase26(m_hexavigesimal) << ")"; out << "(HexavigesimalLabel " << ext::toBase26(m_hexavigesimal) << ")";
} }
   
HexavigesimalLabel::operator std::string() const { HexavigesimalLabel::operator std::string() const {
return std::toBase26(m_hexavigesimal); return ext::toBase26(m_hexavigesimal);
} }
   
HexavigesimalLabel HexavigesimalLabel::parse(std::deque<sax::Token>::iterator& input) { HexavigesimalLabel HexavigesimalLabel::parse(std::deque<sax::Token>::iterator& input) {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include <hexavigesimal> #include <hexavigesimal>
#include <stdexcept> #include <stdexcept>
   
namespace std { namespace ext {
   
unsigned fromBase26( std::string rep ) { unsigned fromBase26( std::string rep ) {
unsigned n = 0; unsigned n = 0;
...@@ -53,4 +53,4 @@ std::string bijectiveToBase26(unsigned n) { ...@@ -53,4 +53,4 @@ std::string bijectiveToBase26(unsigned n) {
return std::string(name.rbegin(), name.rend()); return std::string(name.rbegin(), name.rend());
} }
   
} /* namespace std */ } /* namespace ext */
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
   
#include <string> #include <string>
   
namespace std { namespace ext {
   
/** /**
* Maps 0 -> A, 1 -> B, ..., 25 -> Z, 26 -> AB, 27 -> AC, ..., 675 -> ZZ, 676 -> BAA, ... * Maps 0 -> A, 1 -> B, ..., 25 -> Z, 26 -> AB, 27 -> AC, ..., 675 -> ZZ, 676 -> BAA, ...
...@@ -36,6 +36,6 @@ std::string bijectiveToBase26( unsigned n ); ...@@ -36,6 +36,6 @@ std::string bijectiveToBase26( unsigned n );
*/ */
unsigned bijectiveFromBase26( std::string rep ); unsigned bijectiveFromBase26( std::string rep );
   
} /* namespace std */ } /* namespace ext */
   
#endif /* __HEXAVIGESIMAL_H_ */ #endif /* __HEXAVIGESIMAL_H_ */
...@@ -11,35 +11,35 @@ void HexavigesimalTest::tearDown() { ...@@ -11,35 +11,35 @@ void HexavigesimalTest::tearDown() {
} }
   
void HexavigesimalTest::test1() { void HexavigesimalTest::test1() {
CPPUNIT_ASSERT_EQUAL(std::string("A") , std::toBase26(0)); CPPUNIT_ASSERT_EQUAL(std::string("A") , ext::toBase26(0));
CPPUNIT_ASSERT_EQUAL(std::string("B") , std::toBase26(1)); CPPUNIT_ASSERT_EQUAL(std::string("B") , ext::toBase26(1));
CPPUNIT_ASSERT_EQUAL(std::string("Z") , std::toBase26(25)); CPPUNIT_ASSERT_EQUAL(std::string("Z") , ext::toBase26(25));
CPPUNIT_ASSERT_EQUAL(std::string("BA") , std::toBase26(26)); CPPUNIT_ASSERT_EQUAL(std::string("BA") , ext::toBase26(26));
CPPUNIT_ASSERT_EQUAL(std::string("BB") , std::toBase26(27)); CPPUNIT_ASSERT_EQUAL(std::string("BB") , ext::toBase26(27));
CPPUNIT_ASSERT_EQUAL(std::string("ZZ") , std::toBase26(675)); CPPUNIT_ASSERT_EQUAL(std::string("ZZ") , ext::toBase26(675));
CPPUNIT_ASSERT_EQUAL(std::string("BAA"), std::toBase26(676)); CPPUNIT_ASSERT_EQUAL(std::string("BAA"), ext::toBase26(676));
   
CPPUNIT_ASSERT_EQUAL(0u , std::fromBase26("A")); CPPUNIT_ASSERT_EQUAL(0u , ext::fromBase26("A"));
CPPUNIT_ASSERT_EQUAL(1u , std::fromBase26("B")); CPPUNIT_ASSERT_EQUAL(1u , ext::fromBase26("B"));
CPPUNIT_ASSERT_EQUAL(25u , std::fromBase26("Z")); CPPUNIT_ASSERT_EQUAL(25u , ext::fromBase26("Z"));
CPPUNIT_ASSERT_EQUAL(26u , std::fromBase26("BA")); CPPUNIT_ASSERT_EQUAL(26u , ext::fromBase26("BA"));
CPPUNIT_ASSERT_EQUAL(27u , std::fromBase26("BB")); CPPUNIT_ASSERT_EQUAL(27u , ext::fromBase26("BB"));
CPPUNIT_ASSERT_EQUAL(675u, std::fromBase26("ZZ")); CPPUNIT_ASSERT_EQUAL(675u, ext::fromBase26("ZZ"));
CPPUNIT_ASSERT_EQUAL(676u, std::fromBase26("BAA")); CPPUNIT_ASSERT_EQUAL(676u, ext::fromBase26("BAA"));
   
CPPUNIT_ASSERT_EQUAL(std::string("") , std::bijectiveToBase26(0)); CPPUNIT_ASSERT_EQUAL(std::string("") , ext::bijectiveToBase26(0));
CPPUNIT_ASSERT_EQUAL(std::string("A") , std::bijectiveToBase26(1)); CPPUNIT_ASSERT_EQUAL(std::string("A") , ext::bijectiveToBase26(1));
CPPUNIT_ASSERT_EQUAL(std::string("Z") , std::bijectiveToBase26(26)); CPPUNIT_ASSERT_EQUAL(std::string("Z") , ext::bijectiveToBase26(26));
CPPUNIT_ASSERT_EQUAL(std::string("AA") , std::bijectiveToBase26(27)); CPPUNIT_ASSERT_EQUAL(std::string("AA") , ext::bijectiveToBase26(27));
CPPUNIT_ASSERT_EQUAL(std::string("AB") , std::bijectiveToBase26(28)); CPPUNIT_ASSERT_EQUAL(std::string("AB") , ext::bijectiveToBase26(28));
CPPUNIT_ASSERT_EQUAL(std::string("ZZ") , std::bijectiveToBase26(702)); CPPUNIT_ASSERT_EQUAL(std::string("ZZ") , ext::bijectiveToBase26(702));
CPPUNIT_ASSERT_EQUAL(std::string("AAA"), std::bijectiveToBase26(703)); CPPUNIT_ASSERT_EQUAL(std::string("AAA"), ext::bijectiveToBase26(703));
   
CPPUNIT_ASSERT_EQUAL(0u , std::bijectiveFromBase26("")); CPPUNIT_ASSERT_EQUAL(0u , ext::bijectiveFromBase26(""));
CPPUNIT_ASSERT_EQUAL(1u , std::bijectiveFromBase26("A")); CPPUNIT_ASSERT_EQUAL(1u , ext::bijectiveFromBase26("A"));
CPPUNIT_ASSERT_EQUAL(26u , std::bijectiveFromBase26("Z")); CPPUNIT_ASSERT_EQUAL(26u , ext::bijectiveFromBase26("Z"));
CPPUNIT_ASSERT_EQUAL(27u , std::bijectiveFromBase26("AA")); CPPUNIT_ASSERT_EQUAL(27u , ext::bijectiveFromBase26("AA"));
CPPUNIT_ASSERT_EQUAL(28u , std::bijectiveFromBase26("AB")); CPPUNIT_ASSERT_EQUAL(28u , ext::bijectiveFromBase26("AB"));
CPPUNIT_ASSERT_EQUAL(702u, std::bijectiveFromBase26("ZZ")); CPPUNIT_ASSERT_EQUAL(702u, ext::bijectiveFromBase26("ZZ"));
CPPUNIT_ASSERT_EQUAL(703u, std::bijectiveFromBase26("AAA")); CPPUNIT_ASSERT_EQUAL(703u, ext::bijectiveFromBase26("AAA"));
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment