Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
RTEOptimize.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <ext/algorithm>
9#include <ext/iterator>
10
13
15
16namespace rte {
17
18namespace simplify {
19
21public:
22
23 template < class SymbolType >
25 template < class SymbolType >
27 template < class SymbolType >
28 static void optimize( rte::FormalRTEElement < SymbolType > & element );
29private:
30 template < class SymbolType >
32
33 template < class SymbolType >
34 static bool S( rte::FormalRTEElement < SymbolType > * & node );
35 template < class SymbolType >
36 static bool A1( rte::FormalRTEElement < SymbolType > * & node );
37 template < class SymbolType >
38 static bool A2( rte::FormalRTEElement < SymbolType > * & node );
39 template < class SymbolType >
40 static bool A3( rte::FormalRTEElement < SymbolType > * & node );
41 template < class SymbolType >
42 static bool A4( rte::FormalRTEElement < SymbolType > * & node );
43 template < class SymbolType >
44 static bool A5( rte::FormalRTEElement < SymbolType > * & node );
45 template < class SymbolType >
46 static bool A6( rte::FormalRTEElement < SymbolType > * & node );
47 template < class SymbolType >
48 static bool A7( rte::FormalRTEElement < SymbolType > * & node );
49 template < class SymbolType >
50 static bool A8( rte::FormalRTEElement < SymbolType > * & node );
51 template < class SymbolType >
52 static bool A9( rte::FormalRTEElement < SymbolType > * & node );
53/* template < class SymbolType >
54 static bool A10( rte::FormalRTEElement < SymbolType > * & node );*/
55 template < class SymbolType >
56 static bool A11( rte::FormalRTEElement < SymbolType > * & node );
57 template < class SymbolType >
58 static bool V1( rte::FormalRTEElement < SymbolType > * & node );
59/* template < class SymbolType >
60 static bool V2( rte::FormalRTEElement < SymbolType > * & node );
61 template < class SymbolType >
62 static bool V3( rte::FormalRTEElement < SymbolType > * & node );
63 template < class SymbolType >
64 static bool V4( rte::FormalRTEElement < SymbolType > * & node );
65 template < class SymbolType >
66 static bool V5( rte::FormalRTEElement < SymbolType > * & node );
67 template < class SymbolType >
68 static bool V6( rte::FormalRTEElement < SymbolType > * & node );
69 template < class SymbolType >
70 static bool V8( rte::FormalRTEElement < SymbolType > * & node );
71 template < class SymbolType >
72 static bool V9( rte::FormalRTEElement < SymbolType > * & node );
73 template < class SymbolType >
74 static bool V10( rte::FormalRTEElement < SymbolType > * & node );*/
75
76 template < class SymbolType >
77 static bool X1( rte::FormalRTEElement < SymbolType > * & node );
78};
79
80template < class SymbolType >
83}
84
85template < class SymbolType >
87 ext::smart_ptr < FormalRTEElement < SymbolType > > optimized = optimizeInner( rte.getStructure ( ) );
88
89 return rte::FormalRTEStructure < SymbolType > ( * optimized );
90}
91
92} /* namespace simplify */
93
94} /* namespace rte */
95
97
Managed pointer simulating value like behavior.
Definition: memory.hpp:233
Definition: FormalRTEElement.h:54
Represents unbounded regular expression structure. Regular expression is stored as a tree of Unbounde...
Definition: FormalRTEStructure.h:41
Formal regular tree expression represents regular tree expression. It describes regular tree language...
Definition: FormalRTE.h:71
Definition: RTEOptimize.h:20
static rte::FormalRTEStructure< SymbolType > optimize(const rte::FormalRTEStructure< SymbolType > &rte)
static rte::FormalRTE< SymbolType > optimize(const rte::FormalRTE< SymbolType > &rte)
Definition: Node.cpp:11
Definition: ToFTAGlushkov.h:22