mirror of
https://github.com/zeek/zeek.git
synced 2025-10-05 16:18:19 +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);
|
extern const char* expr_name(BroExprTag t);
|
||||||
|
|
||||||
class AddToExpr;
|
class AddToExpr;
|
||||||
|
class AnyIndexExpr;
|
||||||
class AssignExpr;
|
class AssignExpr;
|
||||||
class CallExpr;
|
class CallExpr;
|
||||||
class ConstExpr;
|
class ConstExpr;
|
||||||
|
@ -93,6 +94,7 @@ class ForExpr;
|
||||||
class HasFieldExpr;
|
class HasFieldExpr;
|
||||||
class IndexAssignExpr;
|
class IndexAssignExpr;
|
||||||
class IndexExpr;
|
class IndexExpr;
|
||||||
|
class IsExpr;
|
||||||
class InlineExpr;
|
class InlineExpr;
|
||||||
class ListExpr;
|
class ListExpr;
|
||||||
class NameExpr;
|
class NameExpr;
|
||||||
|
@ -200,6 +202,7 @@ public:
|
||||||
IntrusivePtr<ctype> As ## ctype ## Ptr ();
|
IntrusivePtr<ctype> As ## ctype ## Ptr ();
|
||||||
|
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(AddToExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(AddToExpr)
|
||||||
|
ZEEK_EXPR_ACCESSOR_DECLS(AnyIndexExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(AssignExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(AssignExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(CallExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(CallExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(ConstExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(ConstExpr)
|
||||||
|
@ -211,6 +214,7 @@ public:
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(HasFieldExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(HasFieldExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(IndexAssignExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(IndexAssignExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(IndexExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(IndexExpr)
|
||||||
|
ZEEK_EXPR_ACCESSOR_DECLS(IsExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(InlineExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(InlineExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(ListExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(ListExpr)
|
||||||
ZEEK_EXPR_ACCESSOR_DECLS(NameExpr)
|
ZEEK_EXPR_ACCESSOR_DECLS(NameExpr)
|
||||||
|
@ -1009,6 +1013,7 @@ public:
|
||||||
~HasFieldExpr() override;
|
~HasFieldExpr() override;
|
||||||
|
|
||||||
const char* FieldName() const { return field_name; }
|
const char* FieldName() const { return field_name; }
|
||||||
|
int Field() const { return field; }
|
||||||
|
|
||||||
// Optimization-related:
|
// Optimization-related:
|
||||||
ExprPtr Duplicate() override;
|
ExprPtr Duplicate() override;
|
||||||
|
@ -1424,6 +1429,8 @@ class IsExpr final : public UnaryExpr {
|
||||||
public:
|
public:
|
||||||
IsExpr(ExprPtr op, TypePtr t);
|
IsExpr(ExprPtr op, TypePtr t);
|
||||||
|
|
||||||
|
TypePtr TestType() const { return t; }
|
||||||
|
|
||||||
// Optimization-related:
|
// Optimization-related:
|
||||||
ExprPtr Duplicate() override;
|
ExprPtr Duplicate() override;
|
||||||
|
|
||||||
|
|
|
@ -67,12 +67,24 @@ const AddToExpr* Expr::AsAddToExpr() const
|
||||||
return (const AddToExpr*) this;
|
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
|
const InlineExpr* Expr::AsInlineExpr() const
|
||||||
{
|
{
|
||||||
CHECK_TAG(tag, EXPR_INLINE, "ExprVal::AsInlineExpr", expr_name)
|
CHECK_TAG(tag, EXPR_INLINE, "ExprVal::AsInlineExpr", expr_name)
|
||||||
return (const InlineExpr*) this;
|
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::GetOp1() const { return nullptr; }
|
||||||
ExprPtr Expr::GetOp2() const { return nullptr; }
|
ExprPtr Expr::GetOp2() const { return nullptr; }
|
||||||
ExprPtr Expr::GetOp3() const { return nullptr; }
|
ExprPtr Expr::GetOp3() const { return nullptr; }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue