diff --git a/parso/grammar.py b/parso/grammar.py index 52d87a9..d0ee007 100644 --- a/parso/grammar.py +++ b/parso/grammar.py @@ -45,33 +45,35 @@ class Grammar(object): If you need finer grained control over the parsed instance, there will be other ways to access it. - :param code str: A unicode string that contains Python code. - :param path str: The path to the file you want to open. Only needed for caching. - :param error_recovery bool: If enabled, any code will be returned. If + :param str code: A unicode or bytes string. When it's not possible to + decode bytes to a string, returns a + :py:class:`exceptions.UnicodeDecodeError`. + :param bool error_recovery: If enabled, any code will be returned. If it is invalid, it will be returned as an error node. If disabled, you will get a ParseError when encountering syntax errors in your code. - :param start_symbol str: The grammar symbol that you want to parse. Only + :param str start_symbol: The grammar symbol that you want to parse. Only allowed to be used when error_recovery is False. - :param cache bool: Keeps a copy of the parser tree in RAM and on disk + :param str path: The path to the file you want to open. Only needed for caching. + :param bool cache: Keeps a copy of the parser tree in RAM and on disk if a path is given. Returns the cached trees if the corresponding files on disk have not changed. - :param diff_cache bool: Diffs the cached python module against the new + :param bool diff_cache: Diffs the cached python module against the new code and tries to parse only the parts that have changed. Returns the same (changed) module that is found in cache. Using this option requires you to not do anything anymore with the old cached module, because the contents of it might have changed. - :param cache_path bool: If given saves the parso cache in this + :param bool cache_path: If given saves the parso cache in this directory. If not given, defaults to the default cache places on each platform. - :return: A syntax tree node. Typically the module. + :return: A subclass of :py:class:`parso.tree.Node`. Typically a module. """ if 'start_pos' in kwargs: raise TypeError("parse() got an unexpected keyworda argument.") return self._parse(code=code, **kwargs) - def _parse(self, code=None, path=None, error_recovery=True, + def _parse(self, code=None, error_recovery=True, path=None, start_symbol=None, cache=False, diff_cache=False, cache_path=None, start_pos=(1, 0)): """