diff --git a/requirements.txt b/requirements.txt index f0aa93a..1a2f7b1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ mypy +parsimonious diff --git a/src/JobShopParser/__init__.py b/src/JobShopParser/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/JobShopParser/jobshop1_parser.py b/src/JobShopParser/jobshop1_parser.py new file mode 100644 index 0000000..a064077 --- /dev/null +++ b/src/JobShopParser/jobshop1_parser.py @@ -0,0 +1,19 @@ +from parsomonious.grammar import Grammar + +grammar = Grammar( + """ + start = skip_preface + skip_preface = instance_list / ~"."s skip_preface + eol = \n / \r\n + _ = " " + instance_list = problem_instance (sep_line problem_instance eol)* eof + problem_instance = strip_whitespace "instance" _ instance_name eol eol sep_line description eol job_data + description = ~".*" + instance_name = ~"\w" + sep_line = strip_whitespace plus_line strip_whitespace eol + plus_line = ~"\+\+\++" + eof = strip_whitespace plus_line " EOF " plus_line strip_whitespace + strip_whitespace = ~"[\t ]*" + job_data = ~"[ \r\n0-9]*"s + """) +