Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
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