Skip to content

Operator precedence is not being handled #11

Open
@darkfoxprime

Description

@darkfoxprime

Operator precedence is not being properly handled. A couple of examples:

>>> to_ast = lambda x:ast.parse(x, mode='eval')
>>> codegen.to_source(to_ast( '(1+2)*3' ))
'1 + 2 * 3'

1+2*3 = 7. (1+2)*3 = 9

>>> codegen.to_source(to_ast( '( "%s " % (sep,) ).join(foo)' ))
"'%s ' % (sep,).join(foo)"

This is evaluated as '%s ' % ((sep,).join(foo)) because . is higher precedence than %

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions