diff --git a/builtin.py b/builtin.py index b39d287e..0725a8b9 100644 --- a/builtin.py +++ b/builtin.py @@ -193,6 +193,8 @@ class Parser(CachedModule): code += parsing.indent_block('%s\n\n' % ret) else: # generation of code with mixins + # the parser only supports basic functions with a newline after + # the double dots # find doc_str place pos = re.search(r'\):\s*\n', mixin).end() if pos is None: diff --git a/parsetest.py b/parsetest.py index 7ebdd073..8354b376 100644 --- a/parsetest.py +++ b/parsetest.py @@ -162,7 +162,7 @@ def gen(): yield 1 yield "" -gen_exe = t12343 + gen() +gen_exe = gen() def dec(func): def wrapper(*args, **kwargs): diff --git a/parsing.py b/parsing.py index aca32187..af106b1d 100644 --- a/parsing.py +++ b/parsing.py @@ -601,8 +601,8 @@ class Statement(Simple): if tok in ['return', 'yield'] or level == 0 and \ '=' in tok and not tok in ['>=', '<=', '==', '!=']: # This means, there is an assignment here. - # TODO there may be multiple assignments: a = b = 1 + # Add assignments, which can be more than one self._assignment_details.append((tok, top)) # All these calls wouldn't be important if nonlocal would # exist. -> Initialize the first item again. @@ -668,7 +668,7 @@ class Statement(Simple): close_brackets = False is_chain = True elif tok == ',': - if is_call_or_close(): + while is_call_or_close(): result = result.parent close_brackets = False result.add_field() @@ -687,7 +687,7 @@ class Statement(Simple): #result = result.parent close_brackets = True else: - if is_call_or_close(): + while is_call_or_close(): result = result.parent close_brackets = False result.add_to_current_field(tok)