12#include <alib/variant>
24 template <
class SymbolType >
26 template <
class SymbolType >
28 template <
class SymbolType >
33 if(generatesEpsilon) {
43 template <
class SymbolType >
45 template <
class SymbolType >
47 template <
class SymbolType >
49 template <
class SymbolType >
51 template <
class SymbolType >
53 template <
class T,
class R,
class S >
55 template <
class TerminalSymbolType,
class NonterminalSymbolType >
57 template <
class TerminalSymbolType,
class NonterminalSymbolType >
59 template <
class TerminalSymbolType,
class NonterminalSymbolType >
61 template <
class TerminalSymbolType,
class NonterminalSymbolType >
65template <
class SymbolType >
68 for (
const auto& symbol : symbols) {
74template <
class SymbolType >
77 for (
const auto& symbol : symbols) {
83template <
class SymbolType >
90template <
class SymbolType >
93 if(symbols.empty ( )) {
96 }
else for (
const auto& symbol : symbols) {
102template <
class SymbolType >
105 if(symbols.empty ( )) {
108 }
else for (
const auto& symbol : symbols) {
114template <
class SymbolType >
117 if(symbols.empty ( )) {
120 }
else for (
const auto& symbol : symbols) {
126template <
class SymbolType >
133template <
class SymbolType >
136 if(symbols.empty ( )) {
139 }
else for (
const auto& symbol : symbols) {
145template <
class T,
class R,
class S >
148 if ( symbols.template is < T > ( ) ) {
158template <
class TerminalSymbolType,
class NonterminalSymbolType >
164 for (
const auto& symbol : symbols.second) {
171template <
class TerminalSymbolType,
class NonterminalSymbolType >
184 for (
const auto& symbol : std::get<0>(rhs)) {
188 for (
const auto& symbol : std::get<2>(rhs)) {
195template <
class TerminalSymbolType,
class NonterminalSymbolType >
209 for (
const auto& symbol : rhs.second) {
216template <
class TerminalSymbolType,
class NonterminalSymbolType >
231 for (
const auto& symbol : rhs.first) {
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
Class extending the tuple class from the standard library. Original reason is to allow printing of th...
Definition: tuple.hpp:42
Implementation of the variant class allowing to store any type of those listed in the template parame...
Definition: variant.hpp:98
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
Definition: GrammarToXMLComposer.h:22
static void composeNonterminalAlphabet(ext::deque< sax::Token > &out, const ext::set< SymbolType > &symbols)
Definition: GrammarToXMLComposer.h:66
static void composeRuleLHS(ext::deque< sax::Token > &out, const ext::vector< SymbolType > &symbols)
Definition: GrammarToXMLComposer.h:103
static void composeTerminalAlphabet(ext::deque< sax::Token > &out, const ext::set< SymbolType > &symbols)
Definition: GrammarToXMLComposer.h:75
static void composeRuleGNFRHS(ext::deque< sax::Token > &out, const ext::pair< TerminalSymbolType, ext::vector< NonterminalSymbolType > > &symbols)
Definition: GrammarToXMLComposer.h:159
static void composeRuleRightLGRHS(ext::deque< sax::Token > &out, const ext::variant< ext::vector< TerminalSymbolType >, ext::pair< ext::vector< TerminalSymbolType >, NonterminalSymbolType > > &symbols)
Definition: GrammarToXMLComposer.h:217
static void composeRuleLContext(ext::deque< sax::Token > &out, const ext::vector< SymbolType > &symbols)
Definition: GrammarToXMLComposer.h:91
static void composeRuleSingleSymbolLHS(ext::deque< sax::Token > &out, const SymbolType &symbol)
Definition: GrammarToXMLComposer.h:127
static void composeInitialSymbol(ext::deque< sax::Token > &out, const SymbolType &symbol)
Definition: GrammarToXMLComposer.h:84
static void composeRuleLGRHS(ext::deque< sax::Token > &out, const ext::variant< ext::vector< TerminalSymbolType >, ext::tuple< ext::vector< TerminalSymbolType >, NonterminalSymbolType, ext::vector< TerminalSymbolType > > > &symbols)
Definition: GrammarToXMLComposer.h:172
static void composeRuleRContext(ext::deque< sax::Token > &out, const ext::vector< SymbolType > &symbols)
Definition: GrammarToXMLComposer.h:115
static void composeRuleOneOrTwoSymbolsRHS(ext::deque< sax::Token > &out, const ext::variant< T, ext::pair< R, S > > &symbols)
Definition: GrammarToXMLComposer.h:146
static void composeGeneratesEpsilon(ext::deque< sax::Token > &out, bool generatesEpsilon)
Definition: GrammarToXMLComposer.h:31
static void composeRuleRHS(ext::deque< sax::Token > &out, const ext::vector< SymbolType > &symbols)
Definition: GrammarToXMLComposer.h:134
static void composeRuleLeftLGRHS(ext::deque< sax::Token > &out, const ext::variant< ext::vector< TerminalSymbolType >, ext::pair< NonterminalSymbolType, ext::vector< TerminalSymbolType > > > &symbols)
Definition: GrammarToXMLComposer.h:196
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
Definition: ToAutomaton.h:24
auto & get(ext::ptr_array< Type, N > &tpl)
Specialisation of get function for pointer arrays.
Definition: ptr_array.hpp:693
Definition: xmlApi.hpp:27