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
GNF.h
Go to the documentation of this file.
1
6#pragma once
7
9#include <core/stringApi.hpp>
10
12
15
18
19namespace core {
20
21template < class TerminalSymbolType, class NonterminalSymbolType >
22struct stringApi < grammar::GNF < TerminalSymbolType, NonterminalSymbolType > > {
24 static bool first ( ext::istream & input );
26};
27
28template < class TerminalSymbolType, class NonterminalSymbolType >
30 grammar::GrammarFromStringLexer::Token token = grammar::GrammarFromStringLexer::next(input);
32 throw exception::CommonException("Unrecognised GNF token.");
33
34 grammar::GNF < TerminalSymbolType, NonterminalSymbolType > grammar = grammar::GrammarFromStringParserCommon::parseCFLikeGrammar < grammar::GNF < TerminalSymbolType, NonterminalSymbolType > > ( input );
35
37 throw exception::CommonException("Init on RHS when generate eps");
38
39 return grammar;
40}
41
42template < class TerminalSymbolType, class NonterminalSymbolType >
44 grammar::GrammarFromStringLexer::Token token = grammar::GrammarFromStringLexer::next ( input );
47 return res;
48}
49
50template < class TerminalSymbolType, class NonterminalSymbolType >
52 output << "GNF";
54}
55
56} /* namespace core */
57
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
Greibach normal form of a context free grammar in Chomsky hierarchy or type 2 in Chomsky hierarchy....
Definition: GNF.h:65
static Token next(ext::istream &input)
Definition: GrammarFromStringLexer.cpp:10
static void composeCFLikeGrammar(ext::ostream &output, const T &grammar)
Definition: GrammarToStringComposerCommon.h:28
static bool isFITDefinition(const T &grammar)
Definition: IsFITDefinition.h:22
static T makeFITDefinition(const T &grammar)
Definition: MakeFITDefinition.h:26
return grammar
Definition: ToGrammarLeftRG.h:99
return res
Definition: MinimizeByPartitioning.h:145
Definition: normalize.hpp:10
Definition: ToAutomaton.h:24
Definition: stringApi.hpp:26