Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Concepts
NonContractingGrammar.h
Go to the documentation of this file.
1
6#pragma once
7
9#include <core/stringApi.hpp>
10
12
15
16namespace core {
17
18template<class SymbolType >
19struct stringApi < grammar::NonContractingGrammar < SymbolType > > {
21 static bool first ( ext::istream & input );
22 static void compose ( ext::ostream & output, const grammar::NonContractingGrammar < SymbolType > & grammar );
23};
24
25template<class SymbolType >
27 grammar::GrammarFromStringLexer::Token token = grammar::GrammarFromStringLexer::next(input);
29 throw exception::CommonException("Unrecognised NonContractingGrammar token.");
30
31 return grammar::GrammarFromStringParserCommon::parseCSLikeGrammar < grammar::NonContractingGrammar < SymbolType > > ( input );
32}
33
34template<class SymbolType >
36 grammar::GrammarFromStringLexer::Token token = grammar::GrammarFromStringLexer::next ( input );
39 return res;
40}
41
42template<class SymbolType >
44 output << "NON_CONTRACTING_GRAMMAR";
46}
47
48} /* namespace core */
49
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
static void putback(ext::istream &input, const Token &token)
Definition: lexer.hpp:61
Definition: istream.h:32
Definition: ostream.h:14
static Token next(ext::istream &input)
Definition: GrammarFromStringLexer.cpp:10
static void composeCSLikeGrammar(ext::ostream &output, const T &grammar)
Definition: GrammarToStringComposerCommon.h:81
Noncontracting grammar in Chomsky hierarchy or type 1 in Chomsky hierarchy. Generates context sensiti...
Definition: NonContractingGrammar.h:64
return res
Definition: MinimizeByPartitioning.h:145
Definition: normalize.hpp:10
Definition: ToAutomaton.h:24
Definition: stringApi.hpp:26