Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
LeftLG.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 TerminalSymbolType, class NonterminalSymbolType >
19struct stringApi < grammar::LeftLG < TerminalSymbolType, NonterminalSymbolType > > {
21 static bool first ( ext::istream & input );
23};
24
25template < class TerminalSymbolType, class NonterminalSymbolType >
27 grammar::GrammarFromStringLexer::Token token = grammar::GrammarFromStringLexer::next(input);
29 throw exception::CommonException("Unrecognised LeftLG token.");
30
31 return grammar::GrammarFromStringParserCommon::parseCFLikeGrammar < grammar::LeftLG < TerminalSymbolType, NonterminalSymbolType > > ( input );
32}
33
34template < class TerminalSymbolType, class NonterminalSymbolType >
36 grammar::GrammarFromStringLexer::Token token = grammar::GrammarFromStringLexer::next ( input );
39 return res;
40}
41
42template < class TerminalSymbolType, class NonterminalSymbolType >
44 output << "LEFT_LG";
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 composeCFLikeGrammar(ext::ostream &output, const T &grammar)
Definition: GrammarToStringComposerCommon.h:28
Left linear grammar in Chomsky hierarchy or type 3 in Chomsky hierarchy. Generates regular languages.
Definition: LeftLG.h:66
return res
Definition: MinimizeByPartitioning.h:145
Definition: normalize.hpp:10
Definition: ToAutomaton.h:24
Definition: stringApi.hpp:26