19 template <
class T,
class TerminalSymbolType =
typename grammar::TerminalSymbolTypeOfGrammar < T >,
class NonterminalSymbolType =
typename grammar::NonterminalSymbolTypeOfGrammar < T > >
21 template <
class T,
class SymbolType =
typename grammar::TerminalSymbolTypeOfGrammar < T > >
23 template <
class T,
class SymbolType =
typename grammar::TerminalSymbolTypeOfGrammar < T > >
27template <
class T,
class TerminalSymbolType,
class NonterminalSymbolType >
31 output <<
" (" << std::endl;
35 for(
const auto& symbol :
grammar.getNonterminalAlphabet() ) {
42 output <<
"}," << std::endl;
45 for(
const auto& symbol :
grammar.getTerminalAlphabet() ) {
52 output <<
"}," << std::endl;
56 for(
const auto& rule : rawRules ) {
60 output <<
"," << std::endl <<
" ";
63 bool innerFirst =
true;
64 for(
const auto& rhs : rule.second) {
69 for(
const auto& symbol : rhs) {
75 output <<
"}," << std::endl;
77 output <<
")" << std::endl;
80template <
class T,
class SymbolType >
84 output <<
" (" << std::endl;
88 for(
const auto& symbol :
grammar.getNonterminalAlphabet() ) {
95 output <<
"}," << std::endl;
98 for(
const auto& symbol :
grammar.getTerminalAlphabet() ) {
105 output <<
"}," << std::endl;
108 for(
const auto& rule :
grammar.getRules() ) {
112 output <<
"," << std::endl <<
" ";
113 for(
const auto& symbol : rule.first) {
118 bool innerFirst =
true;
119 for(
const auto& rhs : rule.second) {
124 for(
const auto& symbol : rhs) {
130 output <<
"}," << std::endl;
132 output <<
")" << std::endl;
135template <
class T,
class SymbolType >
139 output <<
" (" << std::endl;
143 for(
const auto& symbol :
grammar.getNonterminalAlphabet() ) {
150 output <<
"}," << std::endl;
153 for(
const auto& symbol :
grammar.getTerminalAlphabet() ) {
160 output <<
"}," << std::endl;
163 for(
const auto& rule :
grammar.getRules() ) {
167 output <<
"," << std::endl <<
" ";
168 for(
const auto& symbol : std::get<0>(rule.first)) {
175 for(
const auto& symbol : std::get<2>(rule.first)) {
180 bool innerFirst =
true;
181 for(
const auto& rhs : rule.second) {
186 for(
const auto& symbol : rhs) {
192 output <<
"}," << std::endl;
194 output <<
")" << std::endl;
Definition: GrammarToStringComposerCommon.h:17
static void composeCSLikeGrammar(ext::ostream &output, const T &grammar)
Definition: GrammarToStringComposerCommon.h:81
static void composePreservingCSLikeGrammar(ext::ostream &output, const T &grammar)
Definition: GrammarToStringComposerCommon.h:136
static void composeCFLikeGrammar(ext::ostream &output, const T &grammar)
Definition: GrammarToStringComposerCommon.h:28
static ext::map< NonterminalSymbolType, ext::set< ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > > getRawRules(const LG< TerminalSymbolType, NonterminalSymbolType > &grammar)
Definition: RawRules.h:92
Definition: ToAutomaton.h:24
Definition: stringApi.hpp:26