Expr: remove unused default constructors and friend declarations

This commit is contained in:
Max Kellermann 2020-02-25 20:55:29 +01:00
parent 138868747c
commit 3bc33fe7f6

View file

@ -245,9 +245,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
NameExpr() { id = 0; }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
ID* id; ID* id;
@ -266,9 +263,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
ConstExpr() { val = 0; }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
Val* val; Val* val;
}; };
@ -287,9 +281,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
UnaryExpr() { op = 0; }
UnaryExpr(BroExprTag arg_tag, Expr* arg_op); UnaryExpr(BroExprTag arg_tag, Expr* arg_op);
~UnaryExpr() override; ~UnaryExpr() override;
@ -316,9 +307,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
BinaryExpr() { op1 = op2 = 0; }
BinaryExpr(BroExprTag arg_tag, Expr* arg_op1, Expr* arg_op2) BinaryExpr(BroExprTag arg_tag, Expr* arg_op1, Expr* arg_op2)
: Expr(arg_tag), op1(arg_op1), op2(arg_op2) : Expr(arg_tag), op1(arg_op1), op2(arg_op2)
{ {
@ -369,9 +357,6 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected: protected:
friend class Expr;
CloneExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -382,10 +367,6 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
Val* DoSingleEval(Frame* f, Val* v) const; Val* DoSingleEval(Frame* f, Val* v) const;
int IsPure() const override; int IsPure() const override;
protected:
friend class Expr;
IncrExpr() { }
}; };
class ComplementExpr : public UnaryExpr { class ComplementExpr : public UnaryExpr {
@ -393,9 +374,6 @@ public:
explicit ComplementExpr(Expr* op); explicit ComplementExpr(Expr* op);
protected: protected:
friend class Expr;
ComplementExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -404,9 +382,6 @@ public:
explicit NotExpr(Expr* op); explicit NotExpr(Expr* op);
protected: protected:
friend class Expr;
NotExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -415,9 +390,6 @@ public:
explicit PosExpr(Expr* op); explicit PosExpr(Expr* op);
protected: protected:
friend class Expr;
PosExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -426,9 +398,6 @@ public:
explicit NegExpr(Expr* op); explicit NegExpr(Expr* op);
protected: protected:
friend class Expr;
NegExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -438,9 +407,6 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected: protected:
friend class Expr;
SizeExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -448,49 +414,29 @@ class AddExpr : public BinaryExpr {
public: public:
AddExpr(Expr* op1, Expr* op2); AddExpr(Expr* op1, Expr* op2);
void Canonicize() override; void Canonicize() override;
protected:
friend class Expr;
AddExpr() { }
}; };
class AddToExpr : public BinaryExpr { class AddToExpr : public BinaryExpr {
public: public:
AddToExpr(Expr* op1, Expr* op2); AddToExpr(Expr* op1, Expr* op2);
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected:
friend class Expr;
AddToExpr() { }
}; };
class RemoveFromExpr : public BinaryExpr { class RemoveFromExpr : public BinaryExpr {
public: public:
RemoveFromExpr(Expr* op1, Expr* op2); RemoveFromExpr(Expr* op1, Expr* op2);
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected:
friend class Expr;
RemoveFromExpr() { }
}; };
class SubExpr : public BinaryExpr { class SubExpr : public BinaryExpr {
public: public:
SubExpr(Expr* op1, Expr* op2); SubExpr(Expr* op1, Expr* op2);
protected:
friend class Expr;
SubExpr() { }
}; };
class TimesExpr : public BinaryExpr { class TimesExpr : public BinaryExpr {
public: public:
TimesExpr(Expr* op1, Expr* op2); TimesExpr(Expr* op1, Expr* op2);
void Canonicize() override; void Canonicize() override;
protected:
friend class Expr;
TimesExpr() { }
}; };
class DivideExpr : public BinaryExpr { class DivideExpr : public BinaryExpr {
@ -498,19 +444,12 @@ public:
DivideExpr(Expr* op1, Expr* op2); DivideExpr(Expr* op1, Expr* op2);
protected: protected:
friend class Expr;
DivideExpr() { }
Val* AddrFold(Val* v1, Val* v2) const override; Val* AddrFold(Val* v1, Val* v2) const override;
}; };
class ModExpr : public BinaryExpr { class ModExpr : public BinaryExpr {
public: public:
ModExpr(Expr* op1, Expr* op2); ModExpr(Expr* op1, Expr* op2);
protected:
friend class Expr;
ModExpr() { }
}; };
class BoolExpr : public BinaryExpr { class BoolExpr : public BinaryExpr {
@ -519,19 +458,11 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
Val* DoSingleEval(Frame* f, Val* v1, Expr* op2) const; Val* DoSingleEval(Frame* f, Val* v1, Expr* op2) const;
protected:
friend class Expr;
BoolExpr() { }
}; };
class BitExpr : public BinaryExpr { class BitExpr : public BinaryExpr {
public: public:
BitExpr(BroExprTag tag, Expr* op1, Expr* op2); BitExpr(BroExprTag tag, Expr* op1, Expr* op2);
protected:
friend class Expr;
BitExpr() { }
}; };
class EqExpr : public BinaryExpr { class EqExpr : public BinaryExpr {
@ -540,9 +471,6 @@ public:
void Canonicize() override; void Canonicize() override;
protected: protected:
friend class Expr;
EqExpr() { }
Val* Fold(Val* v1, Val* v2) const override; Val* Fold(Val* v1, Val* v2) const override;
}; };
@ -550,10 +478,6 @@ class RelExpr : public BinaryExpr {
public: public:
RelExpr(BroExprTag tag, Expr* op1, Expr* op2); RelExpr(BroExprTag tag, Expr* op1, Expr* op2);
void Canonicize() override; void Canonicize() override;
protected:
friend class Expr;
RelExpr() { }
}; };
class CondExpr : public Expr { class CondExpr : public Expr {
@ -571,9 +495,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
CondExpr() { op1 = op2 = op3 = 0; }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
Expr* op1; Expr* op1;
@ -587,10 +508,6 @@ public:
void Assign(Frame* f, Val* v) override; void Assign(Frame* f, Val* v) override;
Expr* MakeLvalue() override; Expr* MakeLvalue() override;
protected:
friend class Expr;
RefExpr() { }
}; };
class AssignExpr : public BinaryExpr { class AssignExpr : public BinaryExpr {
@ -608,9 +525,6 @@ public:
int IsPure() const override; int IsPure() const override;
protected: protected:
friend class Expr;
AssignExpr() { }
bool TypeCheck(attr_list* attrs = 0); bool TypeCheck(attr_list* attrs = 0);
bool TypeCheckArithmetics(TypeTag bt1, TypeTag bt2); bool TypeCheckArithmetics(TypeTag bt1, TypeTag bt2);
@ -622,10 +536,6 @@ class IndexSliceAssignExpr : public AssignExpr {
public: public:
IndexSliceAssignExpr(Expr* op1, Expr* op2, int is_init); IndexSliceAssignExpr(Expr* op1, Expr* op2, int is_init);
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected:
friend class Expr;
IndexSliceAssignExpr() {}
}; };
class IndexExpr : public BinaryExpr { class IndexExpr : public BinaryExpr {
@ -650,9 +560,6 @@ public:
bool IsSlice() const { return is_slice; } bool IsSlice() const { return is_slice; }
protected: protected:
friend class Expr;
IndexExpr() { }
Val* Fold(Val* v1, Val* v2) const override; Val* Fold(Val* v1, Val* v2) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
@ -676,9 +583,6 @@ public:
Expr* MakeLvalue() override; Expr* MakeLvalue() override;
protected: protected:
friend class Expr;
FieldExpr() { field_name = 0; td = 0; }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
@ -698,9 +602,6 @@ public:
const char* FieldName() const { return field_name; } const char* FieldName() const { return field_name; }
protected: protected:
friend class Expr;
HasFieldExpr() { field_name = 0; }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
@ -715,9 +616,6 @@ public:
~RecordConstructorExpr() override; ~RecordConstructorExpr() override;
protected: protected:
friend class Expr;
RecordConstructorExpr() { }
Val* InitVal(const BroType* t, Val* aggr) const override; Val* InitVal(const BroType* t, Val* aggr) const override;
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
@ -735,9 +633,6 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected: protected:
friend class Expr;
TableConstructorExpr() { }
Val* InitVal(const BroType* t, Val* aggr) const override; Val* InitVal(const BroType* t, Val* aggr) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
@ -756,9 +651,6 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected: protected:
friend class Expr;
SetConstructorExpr() { }
Val* InitVal(const BroType* t, Val* aggr) const override; Val* InitVal(const BroType* t, Val* aggr) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
@ -773,9 +665,6 @@ public:
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
protected: protected:
friend class Expr;
VectorConstructorExpr() { }
Val* InitVal(const BroType* t, Val* aggr) const override; Val* InitVal(const BroType* t, Val* aggr) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
@ -791,9 +680,6 @@ public:
int IsRecordElement(TypeDecl* td) const override; int IsRecordElement(TypeDecl* td) const override;
protected: protected:
friend class Expr;
FieldAssignExpr() { }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
string field_name; string field_name;
@ -804,9 +690,6 @@ public:
ArithCoerceExpr(Expr* op, TypeTag t); ArithCoerceExpr(Expr* op, TypeTag t);
protected: protected:
friend class Expr;
ArithCoerceExpr() { }
Val* FoldSingleVal(Val* v, InternalTypeTag t) const; Val* FoldSingleVal(Val* v, InternalTypeTag t) const;
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -817,9 +700,6 @@ public:
~RecordCoerceExpr() override; ~RecordCoerceExpr() override;
protected: protected:
friend class Expr;
RecordCoerceExpr() { map = 0; }
Val* InitVal(const BroType* t, Val* aggr) const override; Val* InitVal(const BroType* t, Val* aggr) const override;
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
@ -835,9 +715,6 @@ public:
~TableCoerceExpr() override; ~TableCoerceExpr() override;
protected: protected:
friend class Expr;
TableCoerceExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -847,9 +724,6 @@ public:
~VectorCoerceExpr() override; ~VectorCoerceExpr() override;
protected: protected:
friend class Expr;
VectorCoerceExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
}; };
@ -860,9 +734,6 @@ public:
explicit FlattenExpr(Expr* op); explicit FlattenExpr(Expr* op);
protected: protected:
friend class Expr;
FlattenExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
int num_fields; int num_fields;
@ -897,9 +768,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
ScheduleExpr() { when = 0; event = 0; }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
Expr* when; Expr* when;
@ -911,9 +779,6 @@ public:
InExpr(Expr* op1, Expr* op2); InExpr(Expr* op1, Expr* op2);
protected: protected:
friend class Expr;
InExpr() { }
Val* Fold(Val* v1, Val* v2) const override; Val* Fold(Val* v1, Val* v2) const override;
}; };
@ -933,9 +798,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
CallExpr() { func = 0; args = 0; }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
Expr* func; Expr* func;
@ -980,9 +842,6 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override; TraversalCode Traverse(TraversalCallback* cb) const override;
protected: protected:
friend class Expr;
EventExpr() { args = 0; }
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
string name; string name;
@ -1028,10 +887,6 @@ protected:
class RecordAssignExpr : public ListExpr { class RecordAssignExpr : public ListExpr {
public: public:
RecordAssignExpr(Expr* record, Expr* init_list, int is_init); RecordAssignExpr(Expr* record, Expr* init_list, int is_init);
protected:
friend class Expr;
RecordAssignExpr() { }
}; };
class CastExpr : public UnaryExpr { class CastExpr : public UnaryExpr {
@ -1039,9 +894,6 @@ public:
CastExpr(Expr* op, BroType* t); CastExpr(Expr* op, BroType* t);
protected: protected:
friend class Expr;
CastExpr() { }
Val* Eval(Frame* f) const override; Val* Eval(Frame* f) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;
}; };
@ -1052,9 +904,6 @@ public:
virtual ~IsExpr(); virtual ~IsExpr();
protected: protected:
friend class Expr;
IsExpr() { }
Val* Fold(Val* v) const override; Val* Fold(Val* v) const override;
void ExprDescribe(ODesc* d) const override; void ExprDescribe(ODesc* d) const override;