[ create a new paste ] login | about

Link: http://codepad.org/awPU3KmN    [ raw code | fork ]

Python, pasted on Nov 2:
def precedence(tokens):
    lparen = Token("op", "(")
    rparen = Token("op", ")")

    level = 0
    opening = 0
    output = []

    while tokens:
        if len(tokens) > 1 and tokens[1].value in operators:
            _, precedence = operators.get(tokens[1].value)
            if precedence > level:
                level = precedence
                output.append(lparen)
                opening += 1
            else:
                level = precedence
                for i in range(opening):
                    output.append(rparen)
                opening = 0

        output.append(tokens.pop(0))

    for i in range(opening):
        output.append(rparen)

    return output


Create a new paste based on this one


Comments: