package de.dhbwstuttgart.syntaxtree.statement;

import de.dhbwstuttgart.parser.NullToken;
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
import de.dhbwstuttgart.syntaxtree.type.RefType;
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
import de.dhbwstuttgart.syntaxtree.type.Void;
import org.antlr.v4.runtime.Token;

import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;

import java.util.ArrayList;
import java.util.List;


public class SuperCall extends MethodCall
{
    public SuperCall(RefTypeOrTPHOrWildcardOrGeneric receiverType, 
    		ArrayList<TypePlaceholder> argTypes, Token offset){
        this(new ArgumentList(new ArrayList<Expression>(), offset), receiverType, argTypes, offset);
    }

    public SuperCall(ArgumentList argumentList, RefTypeOrTPHOrWildcardOrGeneric receiverType, 
    		ArrayList<TypePlaceholder> argTypes, Token offset){
        super(new Void(offset), new ExpressionReceiver(new Super(receiverType, offset)), "<init>", argumentList, receiverType, argTypes, offset);
    }


    @Override
    public void accept(StatementVisitor visitor) {
        visitor.visit(this);
    }
}
