Esempio n. 1
0
def precedence(ast):
  nodes = []
  for e in ast:
    if isinstance(e, list) and e:
      expr = precedence(e)
      if isinstance(expr, list):
        expr = pratt_parse(expr)
      nodes.append(expr)
    else:
      nodes.append(e)
  return nodes
Esempio n. 2
0
def precedence(node, depth):
    """ Parses operator precedence """
    if not isinstance(node, Expr):
        return node
    return pratt_parse(node)
Esempio n. 3
0
def precedence(node, depth):
  """ Parses operator precedence """
  if not isinstance(node, Expr):
    return node
  return pratt_parse(node)
Esempio n. 4
0
 def __init__(self, cond, body):
   self.cond = pratt_parse(cond)
   self.body = Block(pratt_parse(body), catch_ret=False)