Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
RankedSymbol.h
Go to the documentation of this file.
1
6#pragma once
7
9#include <core/xmlApi.hpp>
11
12namespace core {
13
14template < typename T >
15struct xmlApi < common::ranked_symbol < T > > {
17 static bool first ( const ext::deque < sax::Token >::const_iterator & input );
18 static std::string xmlTagName ( );
19 static void compose ( ext::deque < sax::Token > & output, const common::ranked_symbol < T > & input );
20};
21
22template < typename T >
25 T data = core::xmlApi < T >::parse ( input );
26 size_t rank = core::xmlApi < size_t >::parse ( input );
28 return common::ranked_symbol < T > ( std::move ( data ), rank );
29}
30
31template < typename T >
34}
35
36template < typename T >
37std::string xmlApi < common::ranked_symbol < T > >::xmlTagName ( ) {
38 return "RankedSymbol";
39}
40
41template < typename T >
43 output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT );
44 core::xmlApi < T >::compose ( output, input.getSymbol ( ) );
45 core::xmlApi < size_t >::compose ( output, input.getRank ( ) );
46 output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT );
47}
48
49} /* namespace core */
50
Definition: ranked_symbol.hpp:20
const SymbolType & getSymbol() const &
Definition: ranked_symbol.hpp:73
const size_t & getRank() const &
Definition: ranked_symbol.hpp:83
Class extending the deque class from the standard library. Original reason is to allow printing of th...
Definition: deque.hpp:44
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
Definition: Permutation.hpp:18
Definition: normalize.hpp:10
Definition: xmlApi.hpp:27