Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
CyclicString.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <string/CyclicString.h>
9#include <core/xmlApi.hpp>
10
13
14namespace core {
15
16template < typename SymbolType >
17struct xmlApi < string::CyclicString < SymbolType > > {
19 static bool first ( const ext::deque < sax::Token >::const_iterator & input );
20 static std::string xmlTagName ( );
21 static void compose ( ext::deque < sax::Token > & output, const string::CyclicString < SymbolType > & input );
22};
23
24template < typename SymbolType >
27 ext::set<SymbolType> alphabet = string::StringFromXmlParserCommon::parseAlphabet < SymbolType > ( input );
28 ext::vector<SymbolType> content = string::StringFromXmlParserCommon::parseContent < SymbolType > ( input );
30 return string::CyclicString < SymbolType > ( std::move ( alphabet ), std::move ( content ) );
31}
32
33template < typename SymbolType >
36}
37
38template < typename SymbolType >
39std::string xmlApi < string::CyclicString < SymbolType > >::xmlTagName ( ) {
40 return "CyclicString";
41}
42
43template < typename SymbolType >
45 output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT );
48 output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT );
49}
50
51} /* namespace core */
52
Class extending the deque class from the standard library. Original reason is to allow printing of th...
Definition: deque.hpp:44
Definition: set.hpp:44
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
static void popToken(ext::deque< Token >::iterator &input, Token::TokenType type, const std::string &data)
Definition: FromXMLParserHelper.cpp:39
static bool isToken(ext::deque< Token >::const_iterator input, Token::TokenType type, const std::string &data)
Definition: FromXMLParserHelper.cpp:29
Cyclic string.
Definition: CyclicString.h:60
const ext::vector< SymbolType > & getContent() const &
Definition: CyclicString.h:219
const ext::set< SymbolType > & getAlphabet() const &
Definition: CyclicString.h:106
static void composeContent(ext::deque< sax::Token > &out, const ext::vector< SymbolType > &content)
Definition: StringToXmlComposerCommon.h:40
static void composeAlphabet(ext::deque< sax::Token > &out, const ext::set< SymbolType > &alphabet)
Definition: StringToXmlComposerCommon.h:30
Definition: BarSymbol.cpp:12
Definition: normalize.hpp:10
Definition: RandomStringFactory.cpp:12
Definition: xmlApi.hpp:27