Node(NodeType type, BString name);
virtual ~Node();
NodeType nodeType();
BString name();
BList<Node*>& nodes();
Node* node(int n);
Node* append(Node* n);
Node* appendList(Node* n);
static BString nodeTypeName(NodeType t);
// Test interface
BString str();
BString asStr();
private:
NodeType onodeType;
BString oname;
BList<Node*> onodes;
};
class NodeOp1 : public Node {
public:
NodeOp1(NodeType nodeType, BString name, Node* arg1);
};
class NodeOp2 : public Node {
public:
NodeOp2(NodeType nodeType, BString name, Node* arg1, Node* arg2);
};
class NodeOp3 : public Node {
public:
NodeOp3(NodeType nodeType, BString name, Node* arg1, Node* arg2, Node* arg3);
};
class NodeOp4 : public Node {
public:
NodeOp4(NodeType nodeType, BString name, Node* arg1, Node* arg2, Node* arg3, Node* arg4);
};
#endif