https://github.com/lurgrid/glushkovizer
Program that transforms a regular expression into a Glushkov automaton and then transforms it into a grammar
https://github.com/lurgrid/glushkovizer
Last synced: over 1 year ago
JSON representation
Program that transforms a regular expression into a Glushkov automaton and then transforms it into a grammar
- Host: GitHub
- URL: https://github.com/lurgrid/glushkovizer
- Owner: Lurgrid
- License: gpl-3.0
- Created: 2024-04-22T08:09:54.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-21T14:34:23.000Z (about 2 years ago)
- Last Synced: 2024-05-22T12:20:18.830Z (about 2 years ago)
- Language: Rust
- Size: 1.74 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Glushkovizer
Manipulation, regular expression and automaton library. Allows conversion of
regular expressions into automata and analysis of automata and their orbits.
## Formal definition
The formal definition of data types used by this library is available in French
[here](./doc/formal.pdf)
## Examples
To see an example of a graphics application using this library, go to this
repository :
> https://github.com/Lurgrid/GlushkovizerApp-GTK4
```bash
$ cargo run --example simple_json
```
**CLI version (example) :**
```bash
$ cargo build --example cli --release
$ ./target/release/examples/cli
Please enter a regular expression - Press Ctrl + D to quit
(a+b).a*.b*.(a+b)*
Concat(Concat(Concat(Or(Symbol('a'), Symbol('b')), Repeat(Symbol('a'))), Repeat(Symbol('b'))), Repeat(Or(Symbol('a'), Symbol('b'))))
Enter a filename to save the automata - Press Ctrl + D to not save
toto
Saved !
Please enter a regular expression - Press Ctrl + D to quit
```
### Run Dependencies
- `dot 9.0 >=` _(May work on an earlier version, but has not been tested)_
_Click [here](https://graphviz.org/download/) to install it_
## License
GPLv3
---
> GitHub [@Lurgrid](https://github.com/Lurgrid)