Package org.yinwang.pysonar.ast

Source Code of org.yinwang.pysonar.ast.Slice

package org.yinwang.pysonar.ast;

import org.jetbrains.annotations.NotNull;
import org.yinwang.pysonar.State;
import org.yinwang.pysonar.types.ListType;
import org.yinwang.pysonar.types.Type;


public class Slice extends Node {

    public Node lower;
    public Node step;
    public Node upper;


    public Slice(Node lower, Node step, Node upper, String file, int start, int end) {
        super(file, start, end);
        this.lower = lower;
        this.step = step;
        this.upper = upper;
        addChildren(lower, step, upper);
    }


    @NotNull
    @Override
    public Type transform(State s) {
        if (lower != null) {
            transformExpr(lower, s);
        }
        if (step != null) {
            transformExpr(step, s);
        }
        if (upper != null) {
            transformExpr(upper, s);
        }
        return new ListType();
    }


    @NotNull
    @Override
    public String toString() {
        return "<Slice:" + lower + ":" + step + ":" + upper + ">";
    }

}
TOP

Related Classes of org.yinwang.pysonar.ast.Slice

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.