mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
accessors for additional Expr subclasses
This commit is contained in:
parent
a912f6dd9a
commit
2b0a1bd2e9
2 changed files with 19 additions and 0 deletions
|
@ -82,6 +82,7 @@ enum BroExprTag : int {
|
|||
extern const char* expr_name(BroExprTag t);
|
||||
|
||||
class AddToExpr;
|
||||
class AnyIndexExpr;
|
||||
class AssignExpr;
|
||||
class CallExpr;
|
||||
class ConstExpr;
|
||||
|
@ -93,6 +94,7 @@ class ForExpr;
|
|||
class HasFieldExpr;
|
||||
class IndexAssignExpr;
|
||||
class IndexExpr;
|
||||
class IsExpr;
|
||||
class InlineExpr;
|
||||
class ListExpr;
|
||||
class NameExpr;
|
||||
|
@ -200,6 +202,7 @@ public:
|
|||
IntrusivePtr<ctype> As ## ctype ## Ptr ();
|
||||
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(AddToExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(AnyIndexExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(AssignExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(CallExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(ConstExpr)
|
||||
|
@ -211,6 +214,7 @@ public:
|
|||
ZEEK_EXPR_ACCESSOR_DECLS(HasFieldExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(IndexAssignExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(IndexExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(IsExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(InlineExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(ListExpr)
|
||||
ZEEK_EXPR_ACCESSOR_DECLS(NameExpr)
|
||||
|
@ -1009,6 +1013,7 @@ public:
|
|||
~HasFieldExpr() override;
|
||||
|
||||
const char* FieldName() const { return field_name; }
|
||||
int Field() const { return field; }
|
||||
|
||||
// Optimization-related:
|
||||
ExprPtr Duplicate() override;
|
||||
|
@ -1424,6 +1429,8 @@ class IsExpr final : public UnaryExpr {
|
|||
public:
|
||||
IsExpr(ExprPtr op, TypePtr t);
|
||||
|
||||
TypePtr TestType() const { return t; }
|
||||
|
||||
// Optimization-related:
|
||||
ExprPtr Duplicate() override;
|
||||
|
||||
|
|
|
@ -67,12 +67,24 @@ const AddToExpr* Expr::AsAddToExpr() const
|
|||
return (const AddToExpr*) this;
|
||||
}
|
||||
|
||||
const IsExpr* Expr::AsIsExpr() const
|
||||
{
|
||||
CHECK_TAG(tag, EXPR_IS, "ExprVal::AsIsExpr", expr_name)
|
||||
return (const IsExpr*) this;
|
||||
}
|
||||
|
||||
const InlineExpr* Expr::AsInlineExpr() const
|
||||
{
|
||||
CHECK_TAG(tag, EXPR_INLINE, "ExprVal::AsInlineExpr", expr_name)
|
||||
return (const InlineExpr*) this;
|
||||
}
|
||||
|
||||
const AnyIndexExpr* Expr::AsAnyIndexExpr() const
|
||||
{
|
||||
CHECK_TAG(tag, EXPR_ANY_INDEX, "ExprVal::AsAnyIndexExpr", expr_name)
|
||||
return (const AnyIndexExpr*) this;
|
||||
}
|
||||
|
||||
ExprPtr Expr::GetOp1() const { return nullptr; }
|
||||
ExprPtr Expr::GetOp2() const { return nullptr; }
|
||||
ExprPtr Expr::GetOp3() const { return nullptr; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue