Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
TreeFromXMLParser.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <alib/set>
9#include <alib/vector>
10#include <alib/deque>
11#include <alib/tree>
12
13#include <sax/Token.h>
14#include <sax/ParserException.h>
15#include <core/xmlApi.hpp>
16
17namespace tree {
18
23 template < class SymbolType >
24 static ext::tree < SymbolType > parseTreeChild ( ext::deque < sax::Token >::iterator & input );
25
26public:
27 template < class SymbolType >
29 template < class SymbolType >
31
32 template < class SymbolType >
34
35 template < class SymbolType >
37 template < class SymbolType >
39 template < class SymbolType >
41
42 template < class SymbolType >
44
45 template < class SymbolType >
47
48 template < class SymbolType >
50};
51
52template < class SymbolType >
57
58 return bar;
59}
60
61template < class SymbolType >
65
67 bars.insert ( core::xmlApi < SymbolType >::parse ( input ) );
68
70
71 return bars;
72}
73
74template < class SymbolType >
77 SymbolType variablesBar ( core::xmlApi < SymbolType >::parse ( input ) );
79
80 return variablesBar;
81}
82
83template < class SymbolType >
86 SymbolType subtreeWildcard ( core::xmlApi < SymbolType >::parse ( input ) );
88
89 return subtreeWildcard;
90}
91
92template < class SymbolType >
95 SymbolType subtreeGap ( core::xmlApi < SymbolType >::parse ( input ) );
97
98 return subtreeGap;
99}
100
101template < class SymbolType >
105
107 symbols.insert ( core::xmlApi < SymbolType >::parse ( input ) );
108
110 return symbols;
111}
112
113template < class SymbolType >
117
119 data.push_back ( core::xmlApi < SymbolType >::parse ( input ) );
120
122 return data;
123}
124
125template < class SymbolType >
126ext::tree < SymbolType > TreeFromXMLParser::parseTreeChild ( ext::deque < sax::Token >::iterator & input ) {
128
130
133
135 children.push_back ( TreeFromXMLParser::parseTreeChild < SymbolType > ( input ) );
136 }
137
139 }
140
141 return ext::tree < SymbolType > ( symbol, std::move( children ) );
142}
143
144template < class SymbolType >
147
148 ext::tree < SymbolType > data = TreeFromXMLParser::parseTreeChild < SymbolType > ( input );
149
151 return data;
152}
153
154template < class SymbolType >
158
160 symbols.insert ( core::xmlApi < SymbolType >::parse ( input ) );
161
163 return symbols;
164}
165
166} /* namespace tree */
167
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 introducing a tree with interface trying to be close to the interface of standard library conta...
Definition: tree.hpp:52
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
static bool isTokenType(ext::deque< Token >::const_iterator input, Token::TokenType type)
Definition: FromXMLParserHelper.cpp:34
Definition: TreeFromXMLParser.h:22
static ext::tree< SymbolType > parseTreeContent(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:145
static ext::set< SymbolType > parseAlphabet(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:102
static ext::set< SymbolType > parseBars(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:62
static ext::vector< SymbolType > parseLinearContent(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:114
static ext::set< SymbolType > parseNonlinearVariables(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:155
static SymbolType parseGapSymbol(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:93
static SymbolType parseVariablesBar(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:75
static SymbolType parseWildcardSymbol(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:84
static SymbolType parseBar(ext::deque< sax::Token >::iterator &input)
Definition: TreeFromXMLParser.h:53
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
Definition: BackwardOccurrenceTest.h:17
Definition: xmlApi.hpp:27