- added parsimonious as requirement - first try of creating a grammar for job_shop1
20 lines
788 B
Python
20 lines
788 B
Python
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
|
|
""")
|
|
|