Recursive-descent parser for the rule language