def get_rules(self) -> parsing.Node:
res = None<EOL>try:<EOL><INDENT>res = self.eval_rule('<STR_LIT>')<EOL>if not res:<EOL><INDENT>self.diagnostic.notify(<EOL>error.Severity.ERROR,<EOL>"<STR_LIT>" % self._lastRule,<EOL>error.LocationInfo.from_maxstream(self._stream)<EOL>)<EOL>raise self.diagnostic<EOL><DEDENT><DEDENT>except error.Diagnostic as d:<EOL><INDENT>d.notify(<EOL>error.Severity.ERROR,<EOL>"<STR_LIT>" % self._lastRule<EOL>)<EOL>raise d<EOL><DEDENT>return res<EOL>
Parse the DSL and provide a dictionnaries of all resulting rules.
Call by the MetaGrammar class.

TODO: could be done in the rules property of parsing.BasicParser???