views:

27

answers:

1
public abstract class ASTNode3 extends ASTNode {

    ASTNode child1;
    ASTNode child2;
    ASTNode child3;

    public ASTNode3(ASTNode c1, ASTNode c2, ASTNode c3) {
    child1 = c1;
    child2 = c2;
    child3 = c3;
    }

    public ASTNode getChild1() {
    return child1;
    }

    public ASTNode getChild2() {
    return child2;
    }

    public ASTNode getChild3() {
    return child3;
    }
}

public class IRProc extends ASTNode3 {

    public IRProc (String p, Vector v, IRCmdSeq cmds) {
    super(p,v,cmds);
    }

I extended the ASTNode as shown below, but when i try to pass in a Vector and a String as arguments I keep getting errors. How can I pass in these values without affecting the node. I was thinking of creating an intermediate class that handle the type, but i don't know how to.

+2  A: 

In the line

super(p,v,cmds);

you try to call the constructor ASTNode3(ASTNode c1, ASTNode c2, ASTNode c3) with the arguments String p, Vector v, IRCmdSeq cmds. This doesn't match.

You have to create instances of ASTNode to call super(). How you do this depends on what you want to do. Perhaps you should explain what kind of information p, v and cmds actually contain.

tangens
p is a String identifier, v is a Vector of parameters while cmd is some commands. i'm trying to build a compiler
ferronrsmith