codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
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
Private
[
?
]
Run code
Submit