@staticmethod
def slice(ctx, node, output_str):
    start = node.node_config('start')
    end = node.node_config('end')
    step = node.node_config('step')
    dim = node.node_config('dim')
    break_symbol = ':'
    symbols = ''
    starts = []
    ends = []
    steps = []
    for i in range((dim + 1)):
        if (i != dim):
            starts.append(str(0))
            ends.append(str(NNDCT_CONSTANT.INT_MAX))
            steps.append(str(1))
        else:
            starts.append(ctx.infer_attr_value(start))
            ends.append(ctx.infer_attr_value(end))
            steps.append(ctx.infer_attr_value(step))
    for i in range((dim + 1)):
        slice_symbol = break_symbol.join([starts[i], ends[i], steps[i]])
        if (i > 0):
            symbols += (',' + slice_symbol)
        else:
            symbols = slice_symbol
    input_str = ctx.infer_attr_value(node.node_config('input'))
    return '{output} = {input_tensor}[{symbols}]'.format(output=output_str, input_tensor=input_str, symbols=symbols)
@staticmethod
def slice(ctx, node, output_str):
    start = node.node_config('start')
    end = node.node_config('end')
    step = node.node_config('step')
    dim = node.node_config('dim')
    break_symbol = ':'
    symbols = 
    starts = []
    ends = []
    steps = []
    for i in range((dim + 1)):
        if (i != dim):
            starts.append(str(0))
            ends.append(str(NNDCT_CONSTANT.INT_MAX))
            steps.append(str(1))
        else:
            starts.append(ctx.infer_attr_value(start))
            ends.append(ctx.infer_attr_value(end))
            steps.append(ctx.infer_attr_value(step))
    for i in range((dim + 1)):
        slice_symbol = break_symbol.join([starts[i], ends[i], steps[i]])
        if (i > 0):
            symbols += (',' + slice_symbol)
        else:
            symbols = slice_symbol
    input_str = ctx.infer_attr_value(node.node_config('input'))
    return '{output} = {input_tensor}[{symbols}]'.format(output=output_str, input_tensor=input_str, symbols=symbols)