add readme
This commit is contained in:
parent
f715234f41
commit
7023d46c56
41
README.md
Normal file
41
README.md
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Formalang
|
||||||
|
```c++
|
||||||
|
#include "regular/RegularTree.hpp"
|
||||||
|
#include "NFA/NFAGraph.hpp"
|
||||||
|
#include "DFA/DFAGraph.hpp"
|
||||||
|
#include "converters/RegularToNFA.hpp"
|
||||||
|
#include "converters/NFAToDFA.hpp"
|
||||||
|
#include "converters/DFAToFDFA.hpp"
|
||||||
|
#include "converters/DFAToMinDFA.hpp"
|
||||||
|
#include "converters/DFAToRegular.hpp"
|
||||||
|
#include "converters/InvertFDFA.hpp"
|
||||||
|
|
||||||
|
using namespace regular;
|
||||||
|
using namespace NFA;
|
||||||
|
using namespace DFA;
|
||||||
|
using namespace converters;
|
||||||
|
```
|
||||||
|
так можно подключить все что есть в моей программе.
|
||||||
|
```c++
|
||||||
|
RegularTree r("a*"); // Регулярное выражение
|
||||||
|
NFAGraph NFA_tree = RegularToNFAGraph(std::move(r)); // В НКА
|
||||||
|
DFAGraph DFA_graph = NFAGraphToDFAGraph(std::move(NFA_tree)); // В ДКА
|
||||||
|
DFA_graph = DFAGraphToMinDFAGraph(std::move(DFA_graph)); // Минимизация
|
||||||
|
DFA_graph.Print(); // Мой вывод
|
||||||
|
DFA_graph.CreateDotFile("2.dot"); // Вывод в dot файл
|
||||||
|
std::string reg = DFAGraphToRegular(std::move(DFA_graph)); // В регулярку
|
||||||
|
```
|
||||||
|
Такой вывод в регулярку как показано в прошлом примере сделает много лишних скобок, если мы хотим привести к более нормальному виду, то можно сделать так
|
||||||
|
```c++
|
||||||
|
RegularTree(reg).ToString() // Получится более красивая регулярка
|
||||||
|
```
|
||||||
|
Про сами регулярки + * - это плюс и звезда Клини. Их можно писать после слов, или после скобок.
|
||||||
|
abacaba* ~ (abacaba)\*. a(b)a\* ~ a(b)(a)\*. Для сложения языков используется |. Символом пустого слова является пробел.
|
||||||
|
|
||||||
|
Примеры регулярок
|
||||||
|
|
||||||
|
a*
|
||||||
|
|
||||||
|
a(b)+a
|
||||||
|
|
||||||
|
(a|b)*
|
|
@ -1,5 +1,7 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "regular/RegularTree.hpp"
|
#include "regular/RegularTree.hpp"
|
||||||
|
#include "NFA/NFAGraph.hpp"
|
||||||
|
#include "DFA/DFAGraph.hpp"
|
||||||
#include "converters/RegularToNFA.hpp"
|
#include "converters/RegularToNFA.hpp"
|
||||||
#include "converters/NFAToDFA.hpp"
|
#include "converters/NFAToDFA.hpp"
|
||||||
#include "converters/DFAToFDFA.hpp"
|
#include "converters/DFAToFDFA.hpp"
|
||||||
|
@ -7,7 +9,6 @@
|
||||||
#include "converters/DFAToRegular.hpp"
|
#include "converters/DFAToRegular.hpp"
|
||||||
#include "converters/InvertFDFA.hpp"
|
#include "converters/InvertFDFA.hpp"
|
||||||
|
|
||||||
using namespace regular;
|
|
||||||
using namespace regular;
|
using namespace regular;
|
||||||
using namespace NFA;
|
using namespace NFA;
|
||||||
using namespace DFA;
|
using namespace DFA;
|
||||||
|
|
Loading…
Reference in a new issue