write a parser that parsing the rules, which is a external DSL