Example #1
0
def new_unary(self, ast, op, param):
    opu = Node()
    opu.set(op)
    p = Node()
    p.set(param)
    ast.set(knodes.KUnary(opu, [p]))
    return True
Example #2
0
def new_binary(self, ast, op, param):
    left = Node()
    if hasattr(param, 'brack'):
        param = param.brack
    if hasattr(ast, "brack"):
        left = ast.brack
    else:
        left.set(ast)
    if isinstance(param, nodes.Binary) and param.params and isinstance(param.params[0], nodes.Array) and hasattr(
            param.params[0].call_expr, 'brack'):
        param = param.params[0].call_expr.brack
    ast.set(nodes.Binary(op, [left, param]))
    return True
Example #3
0
def new_range(self, ast, expr):
    begin = Node()
    begin.set(ast)
    ast.set(nodes.Range(nodes.Raw('...'), [begin, expr]))
    return True
Example #4
0
def new_binary(self, ast, op, param):
    left = Node()
    left.set(ast)
    ast.set(knodes.KBinary(op, [left, param]))
    return True
Example #5
0
def new_ternary(self, ast, then_expr, else_expr):
    cond = Node()
    cond.set(ast)
    ast.set(knodes.KTernary([], [cond, then_expr, else_expr]))
    return True
Example #6
0
def to_cast(self, ast, typename):
    expr = Node()
    expr.set(ast)
    ast.set(knodes.KCast(knodes.KRaw('()'), [typename.ctype, expr]))
    return True