A compiler for CICERO
Very simple!
- clone this repo
- run
pip install -r requirements.txt
to fetch required packages - run re2compiler.py
to feed regular expression you can use several options:
- using cli input (by not providing a file neither specifying
-data
) - using a file
- using the
-data
argument - programmatically by recalling compile from another python script as in example.py
import re2compiler
data = '(a|b)*'
output = re2compiler.compile(data=data)
print(output)
If you find this repository useful, please use the following citation:
@article{parravicini2021cicero,
title = {{CICERO}: A Domain-Specific Architecture for Efficient Regular Expression Matching},
author = {Daniele Parravicini and Davide Conficconi and Emanuele Del Sozzo and Christian Pilato and Marco D. Santambrogio},
journal = {{ACM} Transactions on Embedded Computing Systems},
year = 2021,
month = {oct},
publisher = {Association for Computing Machinery ({ACM})},
volume = {20},
number = {5s},
pages = {1--24},
doi = {10.1145/3476982},
url = {https://doi.org/10.1145%2F3476982},
}