mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 16:48:19 +00:00
Remove unused FlattenExpr
This commit is contained in:
parent
6147804b36
commit
40ee59f0c3
2 changed files with 1 additions and 63 deletions
51
src/Expr.cc
51
src/Expr.cc
|
@ -37,7 +37,7 @@ const char* expr_name(BroExprTag t)
|
|||
"$=", "in", "<<>>",
|
||||
"()", "function()", "event", "schedule",
|
||||
"coerce", "record_coerce", "table_coerce", "vector_coerce",
|
||||
"sizeof", "flatten", "cast", "is", "[:]="
|
||||
"sizeof", "cast", "is", "[:]="
|
||||
};
|
||||
|
||||
if ( int(t) >= NUM_EXPRS )
|
||||
|
@ -410,8 +410,6 @@ void UnaryExpr::ExprDescribe(ODesc* d) const
|
|||
{
|
||||
if ( is_coerce )
|
||||
d->Add("(coerce ");
|
||||
else if ( Tag() == EXPR_FLATTEN )
|
||||
d->Add("flatten ");
|
||||
else if ( Tag() != EXPR_REF )
|
||||
d->Add(expr_name(Tag()));
|
||||
}
|
||||
|
@ -3787,53 +3785,6 @@ IntrusivePtr<Val> VectorCoerceExpr::Fold(Val* v) const
|
|||
return make_intrusive<VectorVal>(GetType<VectorType>());
|
||||
}
|
||||
|
||||
FlattenExpr::FlattenExpr(IntrusivePtr<Expr> arg_op)
|
||||
: UnaryExpr(EXPR_FLATTEN, std::move(arg_op))
|
||||
{
|
||||
if ( IsError() )
|
||||
return;
|
||||
|
||||
const auto& t = op->GetType();
|
||||
|
||||
if ( t->Tag() != TYPE_RECORD )
|
||||
Internal("bad type in FlattenExpr::FlattenExpr");
|
||||
|
||||
RecordType* rt = t->AsRecordType();
|
||||
num_fields = rt->NumFields();
|
||||
|
||||
auto tl = make_intrusive<TypeList>();
|
||||
|
||||
for ( int i = 0; i < num_fields; ++i )
|
||||
tl->Append(rt->GetFieldType(i));
|
||||
|
||||
Unref(rt);
|
||||
SetType(std::move(tl));
|
||||
}
|
||||
|
||||
IntrusivePtr<Val> FlattenExpr::Fold(Val* v) const
|
||||
{
|
||||
RecordVal* rv = v->AsRecordVal();
|
||||
auto l = make_intrusive<ListVal>(TYPE_ANY);
|
||||
|
||||
for ( int i = 0; i < num_fields; ++i )
|
||||
{
|
||||
if ( Val* fv = rv->Lookup(i) )
|
||||
{
|
||||
l->Append({NewRef{}, fv});
|
||||
continue;
|
||||
}
|
||||
|
||||
const RecordType* rv_t = rv->GetType()->AsRecordType();
|
||||
if ( const Attr* fa = rv_t->FieldDecl(i)->FindAttr(ATTR_DEFAULT) )
|
||||
l->Append(fa->AttrExpr()->Eval(nullptr));
|
||||
|
||||
else
|
||||
RuntimeError("missing field value");
|
||||
}
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
ScheduleTimer::ScheduleTimer(const EventHandlerPtr& arg_event, zeek::Args arg_args,
|
||||
double t)
|
||||
: Timer(t, TIMER_SCHEDULE),
|
||||
|
|
13
src/Expr.h
13
src/Expr.h
|
@ -50,7 +50,6 @@ enum BroExprTag : int {
|
|||
EXPR_TABLE_COERCE,
|
||||
EXPR_VECTOR_COERCE,
|
||||
EXPR_SIZE,
|
||||
EXPR_FLATTEN,
|
||||
EXPR_CAST,
|
||||
EXPR_IS,
|
||||
EXPR_INDEX_SLICE_ASSIGN,
|
||||
|
@ -735,18 +734,6 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
// An internal operator for flattening array indices that are records
|
||||
// into a list of individual values.
|
||||
class FlattenExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit FlattenExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
protected:
|
||||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
|
||||
int num_fields;
|
||||
};
|
||||
|
||||
class ScheduleTimer final : public Timer {
|
||||
public:
|
||||
ScheduleTimer(const EventHandlerPtr& event, zeek::Args args, double t);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue