mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Various deprecation fixes, reported by failed Spicy builds
- Add deprecated version of ID::SetType() that takes Type* - Add deprecated versions of zeek::set_location in the global namespace - Fix global namespace version of lookup_ID to return ID*
This commit is contained in:
parent
118605f4ac
commit
4d96b7f1cc
6 changed files with 140 additions and 121 deletions
|
@ -136,6 +136,11 @@ void ID::SetType(zeek::TypePtr t)
|
||||||
type = std::move(t);
|
type = std::move(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ID::SetType(zeek::Type* t)
|
||||||
|
{
|
||||||
|
SetType({AdoptRef(), t});
|
||||||
|
}
|
||||||
|
|
||||||
void ID::ClearVal()
|
void ID::ClearVal()
|
||||||
{
|
{
|
||||||
val = nullptr;
|
val = nullptr;
|
||||||
|
|
4
src/ID.h
4
src/ID.h
|
@ -63,7 +63,9 @@ public:
|
||||||
|
|
||||||
std::string ModuleName() const;
|
std::string ModuleName() const;
|
||||||
|
|
||||||
void SetType(TypePtr t);
|
void SetType(zeek::TypePtr t);
|
||||||
|
[[deprecated("Remove in v4.1. Use version that takes IntrusivePtr.")]]
|
||||||
|
void SetType(zeek::Type* t);
|
||||||
|
|
||||||
[[deprecated("Remove in v4.1. Use GetType().")]]
|
[[deprecated("Remove in v4.1. Use GetType().")]]
|
||||||
zeek::Type* Type() { return type.get(); }
|
zeek::Type* Type() { return type.get(); }
|
||||||
|
|
12
src/Obj.h
12
src/Obj.h
|
@ -199,3 +199,15 @@ using BroObj [[deprecated("Remove in v4.1. Use zeek::Obj instead.")]] = zeek::Ob
|
||||||
|
|
||||||
[[deprecated("Remove in v4.1. Use zeek::Obj::Print instead.")]]
|
[[deprecated("Remove in v4.1. Use zeek::Obj::Print instead.")]]
|
||||||
extern void print(const zeek::Obj* obj);
|
extern void print(const zeek::Obj* obj);
|
||||||
|
|
||||||
|
[[deprecated("Remove in v4.1. Use zeek::detail::set_location instead.")]]
|
||||||
|
inline void set_location(const Location loc)
|
||||||
|
{
|
||||||
|
zeek::detail::set_location(loc);
|
||||||
|
}
|
||||||
|
|
||||||
|
[[deprecated("Remove in v4.1. Use zeek::detail::set_location instead.")]]
|
||||||
|
inline void set_location(const Location start, const Location end)
|
||||||
|
{
|
||||||
|
zeek::detail::set_location(start, end);
|
||||||
|
}
|
||||||
|
|
|
@ -223,7 +223,7 @@ Scope* global_scope()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const zeek::detail::ID* lookup_ID(
|
zeek::detail::ID* lookup_ID(
|
||||||
const char* name, const char* module,
|
const char* name, const char* module,
|
||||||
bool no_global,
|
bool no_global,
|
||||||
bool same_module_only,
|
bool same_module_only,
|
||||||
|
|
|
@ -128,7 +128,7 @@ constexpr auto global_scope [[deprecated("Remove in v4.1 Use zeek::detail::globa
|
||||||
|
|
||||||
// Because of the use of default arguments, this function can't be aliased like the rest.
|
// Because of the use of default arguments, this function can't be aliased like the rest.
|
||||||
[[deprecated("Remove in v4.1 Use zeek::detail::lookup_ID instead.")]]
|
[[deprecated("Remove in v4.1 Use zeek::detail::lookup_ID instead.")]]
|
||||||
extern const zeek::detail::ID* lookup_ID(
|
extern zeek::detail::ID* lookup_ID(
|
||||||
const char* name, const char* module,
|
const char* name, const char* module,
|
||||||
bool no_global = false,
|
bool no_global = false,
|
||||||
bool same_module_only = false,
|
bool same_module_only = false,
|
||||||
|
|
236
src/parse.y
236
src/parse.y
|
@ -265,7 +265,7 @@ bro:
|
||||||
|
|
||||||
// Any objects creates from here on out should not
|
// Any objects creates from here on out should not
|
||||||
// have file positions associated with them.
|
// have file positions associated with them.
|
||||||
set_location(zeek::detail::no_location);
|
zeek::detail::set_location(zeek::detail::no_location);
|
||||||
}
|
}
|
||||||
|
|
|
|
||||||
/* Silly way of allowing the debugger to call yyparse()
|
/* Silly way of allowing the debugger to call yyparse()
|
||||||
|
@ -292,169 +292,169 @@ opt_expr:
|
||||||
expr:
|
expr:
|
||||||
'(' expr ')'
|
'(' expr ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = $2; $$->MarkParen();
|
$$ = $2; $$->MarkParen();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_COPY '(' expr ')'
|
| TOK_COPY '(' expr ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::CloneExpr({zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::CloneExpr({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_INCR expr
|
| TOK_INCR expr
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::IncrExpr(zeek::detail::EXPR_INCR, {zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::IncrExpr(zeek::detail::EXPR_INCR, {zeek::AdoptRef{}, $2});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_DECR expr
|
| TOK_DECR expr
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::IncrExpr(zeek::detail::EXPR_DECR, {zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::IncrExpr(zeek::detail::EXPR_DECR, {zeek::AdoptRef{}, $2});
|
||||||
}
|
}
|
||||||
|
|
||||||
| '!' expr
|
| '!' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::NotExpr({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::NotExpr({zeek::AdoptRef{}, $2});
|
||||||
}
|
}
|
||||||
|
|
||||||
| '~' expr
|
| '~' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::ComplementExpr({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::ComplementExpr({zeek::AdoptRef{}, $2});
|
||||||
}
|
}
|
||||||
|
|
||||||
| '-' expr %prec '!'
|
| '-' expr %prec '!'
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::NegExpr({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::NegExpr({zeek::AdoptRef{}, $2});
|
||||||
}
|
}
|
||||||
|
|
||||||
| '+' expr %prec '!'
|
| '+' expr %prec '!'
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::PosExpr({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::PosExpr({zeek::AdoptRef{}, $2});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '+' expr
|
| expr '+' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::AddExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::AddExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_ADD_TO expr
|
| expr TOK_ADD_TO expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::AddToExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::AddToExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '-' expr
|
| expr '-' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::SubExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::SubExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_REMOVE_FROM expr
|
| expr TOK_REMOVE_FROM expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::RemoveFromExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::RemoveFromExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '*' expr
|
| expr '*' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::TimesExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::TimesExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '/' expr
|
| expr '/' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::DivideExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::DivideExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '%' expr
|
| expr '%' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::ModExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::ModExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '&' expr
|
| expr '&' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::BitExpr(zeek::detail::EXPR_AND, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::BitExpr(zeek::detail::EXPR_AND, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '|' expr
|
| expr '|' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::BitExpr(zeek::detail::EXPR_OR, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::BitExpr(zeek::detail::EXPR_OR, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '^' expr
|
| expr '^' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::BitExpr(zeek::detail::EXPR_XOR, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::BitExpr(zeek::detail::EXPR_XOR, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_AND_AND expr
|
| expr TOK_AND_AND expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::BoolExpr(zeek::detail::EXPR_AND_AND, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::BoolExpr(zeek::detail::EXPR_AND_AND, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_OR_OR expr
|
| expr TOK_OR_OR expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::BoolExpr(zeek::detail::EXPR_OR_OR, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::BoolExpr(zeek::detail::EXPR_OR_OR, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_EQ expr
|
| expr TOK_EQ expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::EqExpr(zeek::detail::EXPR_EQ, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::EqExpr(zeek::detail::EXPR_EQ, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_NE expr
|
| expr TOK_NE expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::EqExpr(zeek::detail::EXPR_NE, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::EqExpr(zeek::detail::EXPR_NE, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '<' expr
|
| expr '<' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_LT, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_LT, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_LE expr
|
| expr TOK_LE expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_LE, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_LE, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '>' expr
|
| expr '>' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_GT, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_GT, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_GE expr
|
| expr TOK_GE expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_GE, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::RelExpr(zeek::detail::EXPR_GE, {zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '?' expr ':' expr
|
| expr '?' expr ':' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @5);
|
zeek::detail::set_location(@1, @5);
|
||||||
$$ = new zeek::detail::CondExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5});
|
$$ = new zeek::detail::CondExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '=' expr
|
| expr '=' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
|
|
||||||
if ( $1->Tag() == zeek::detail::EXPR_INDEX && $1->AsIndexExpr()->IsSlice() )
|
if ( $1->Tag() == zeek::detail::EXPR_INDEX && $1->AsIndexExpr()->IsSlice() )
|
||||||
reporter->Error("index slice assignment may not be used"
|
reporter->Error("index slice assignment may not be used"
|
||||||
|
@ -466,14 +466,14 @@ expr:
|
||||||
|
|
||||||
| TOK_LOCAL local_id '=' expr
|
| TOK_LOCAL local_id '=' expr
|
||||||
{
|
{
|
||||||
set_location(@2, @4);
|
zeek::detail::set_location(@2, @4);
|
||||||
$$ = add_and_assign_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $4},
|
$$ = add_and_assign_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $4},
|
||||||
zeek::val_mgr->True()).release();
|
zeek::val_mgr->True()).release();
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr '[' expr_list ']'
|
| expr '[' expr_list ']'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::IndexExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::IndexExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -481,13 +481,13 @@ expr:
|
||||||
|
|
||||||
| expr '$' TOK_ID
|
| expr '$' TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::FieldExpr({zeek::AdoptRef{}, $1}, $3);
|
$$ = new zeek::detail::FieldExpr({zeek::AdoptRef{}, $1}, $3);
|
||||||
}
|
}
|
||||||
|
|
||||||
| '$' TOK_ID '=' expr
|
| '$' TOK_ID '=' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::FieldAssignExpr($2, {zeek::AdoptRef{}, $4});
|
$$ = new zeek::detail::FieldAssignExpr($2, {zeek::AdoptRef{}, $4});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -507,13 +507,13 @@ expr:
|
||||||
|
|
||||||
| expr TOK_IN expr
|
| expr TOK_IN expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::InExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::InExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_NOT_IN expr
|
| expr TOK_NOT_IN expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::NotExpr(zeek::make_intrusive<zeek::detail::InExpr>(
|
$$ = new zeek::detail::NotExpr(zeek::make_intrusive<zeek::detail::InExpr>(
|
||||||
zeek::detail::ExprPtr{zeek::AdoptRef{}, $1},
|
zeek::detail::ExprPtr{zeek::AdoptRef{}, $1},
|
||||||
zeek::detail::ExprPtr{zeek::AdoptRef{}, $3}));
|
zeek::detail::ExprPtr{zeek::AdoptRef{}, $3}));
|
||||||
|
@ -521,7 +521,7 @@ expr:
|
||||||
|
|
||||||
| '[' expr_list ']'
|
| '[' expr_list ']'
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
|
|
||||||
bool is_record_ctor = true;
|
bool is_record_ctor = true;
|
||||||
|
|
||||||
|
@ -553,28 +553,28 @@ expr:
|
||||||
|
|
||||||
| TOK_RECORD '(' expr_list ')'
|
| TOK_RECORD '(' expr_list ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::RecordConstructorExpr({zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::RecordConstructorExpr({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_TABLE '(' { ++in_init; } opt_expr_list ')' { --in_init; }
|
| TOK_TABLE '(' { ++in_init; } opt_expr_list ')' { --in_init; }
|
||||||
opt_attr
|
opt_attr
|
||||||
{ // the ++in_init fixes up the parsing of "[x] = y"
|
{ // the ++in_init fixes up the parsing of "[x] = y"
|
||||||
set_location(@1, @5);
|
zeek::detail::set_location(@1, @5);
|
||||||
std::unique_ptr<std::vector<zeek::detail::AttrPtr>> attrs{$7};
|
std::unique_ptr<std::vector<zeek::detail::AttrPtr>> attrs{$7};
|
||||||
$$ = new zeek::detail::TableConstructorExpr({zeek::AdoptRef{}, $4}, std::move(attrs));
|
$$ = new zeek::detail::TableConstructorExpr({zeek::AdoptRef{}, $4}, std::move(attrs));
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_SET '(' opt_expr_list ')' opt_attr
|
| TOK_SET '(' opt_expr_list ')' opt_attr
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
std::unique_ptr<std::vector<zeek::detail::AttrPtr>> attrs{$5};
|
std::unique_ptr<std::vector<zeek::detail::AttrPtr>> attrs{$5};
|
||||||
$$ = new zeek::detail::SetConstructorExpr({zeek::AdoptRef{}, $3}, std::move(attrs));
|
$$ = new zeek::detail::SetConstructorExpr({zeek::AdoptRef{}, $3}, std::move(attrs));
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_VECTOR '(' opt_expr_list ')'
|
| TOK_VECTOR '(' opt_expr_list ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::VectorConstructorExpr({zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::VectorConstructorExpr({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,7 +592,7 @@ expr:
|
||||||
|
|
||||||
')'
|
')'
|
||||||
{
|
{
|
||||||
set_location(@1, @6);
|
zeek::detail::set_location(@1, @6);
|
||||||
|
|
||||||
if ( $1->Tag() == zeek::detail::EXPR_NAME && $1->AsNameExpr()->Id()->IsType() )
|
if ( $1->Tag() == zeek::detail::EXPR_NAME && $1->AsNameExpr()->Id()->IsType() )
|
||||||
{
|
{
|
||||||
|
@ -633,7 +633,7 @@ expr:
|
||||||
| TOK_HOOK { ++in_hook; } expr
|
| TOK_HOOK { ++in_hook; } expr
|
||||||
{
|
{
|
||||||
--in_hook;
|
--in_hook;
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
if ( $3->Tag() != zeek::detail::EXPR_CALL )
|
if ( $3->Tag() != zeek::detail::EXPR_CALL )
|
||||||
$3->Error("not a valid hook call expression");
|
$3->Error("not a valid hook call expression");
|
||||||
$$ = $3;
|
$$ = $3;
|
||||||
|
@ -641,7 +641,7 @@ expr:
|
||||||
|
|
||||||
| expr TOK_HAS_FIELD TOK_ID
|
| expr TOK_HAS_FIELD TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::HasFieldExpr({zeek::AdoptRef{}, $1}, $3);
|
$$ = new zeek::detail::HasFieldExpr({zeek::AdoptRef{}, $1}, $3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -650,13 +650,13 @@ expr:
|
||||||
|
|
||||||
| TOK_SCHEDULE expr '{' event '}'
|
| TOK_SCHEDULE expr '{' event '}'
|
||||||
{
|
{
|
||||||
set_location(@1, @5);
|
zeek::detail::set_location(@1, @5);
|
||||||
$$ = new zeek::detail::ScheduleExpr({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $4});
|
$$ = new zeek::detail::ScheduleExpr({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $4});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_ID
|
| TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
||||||
|
|
||||||
if ( ! id )
|
if ( ! id )
|
||||||
|
@ -706,13 +706,13 @@ expr:
|
||||||
|
|
||||||
| TOK_CONSTANT
|
| TOK_CONSTANT
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = new zeek::detail::ConstExpr({zeek::AdoptRef{}, $1});
|
$$ = new zeek::detail::ConstExpr({zeek::AdoptRef{}, $1});
|
||||||
}
|
}
|
||||||
|
|
||||||
| '/' { begin_RE(); } TOK_PATTERN_TEXT TOK_PATTERN_END
|
| '/' { begin_RE(); } TOK_PATTERN_TEXT TOK_PATTERN_END
|
||||||
{
|
{
|
||||||
set_location(@3);
|
zeek::detail::set_location(@3);
|
||||||
|
|
||||||
RE_Matcher* re = new RE_Matcher($3);
|
RE_Matcher* re = new RE_Matcher($3);
|
||||||
delete [] $3;
|
delete [] $3;
|
||||||
|
@ -726,7 +726,7 @@ expr:
|
||||||
|
|
||||||
| '|' expr '|' %prec '('
|
| '|' expr '|' %prec '('
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
zeek::detail::ExprPtr e{zeek::AdoptRef{}, $2};
|
zeek::detail::ExprPtr e{zeek::AdoptRef{}, $2};
|
||||||
|
|
||||||
if ( zeek::IsIntegral(e->GetType()->Tag()) )
|
if ( zeek::IsIntegral(e->GetType()->Tag()) )
|
||||||
|
@ -737,13 +737,13 @@ expr:
|
||||||
|
|
||||||
| expr TOK_AS type
|
| expr TOK_AS type
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::CastExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::CastExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr TOK_IS type
|
| expr TOK_IS type
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::IsExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
$$ = new zeek::detail::IsExpr({zeek::AdoptRef{}, $1}, {zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -751,13 +751,13 @@ expr:
|
||||||
expr_list:
|
expr_list:
|
||||||
expr_list ',' expr
|
expr_list ',' expr
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$1->Append({zeek::AdoptRef{}, $3});
|
$1->Append({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| expr
|
| expr
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = new zeek::detail::ListExpr({zeek::AdoptRef{}, $1});
|
$$ = new zeek::detail::ListExpr({zeek::AdoptRef{}, $1});
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -796,7 +796,7 @@ enum_body_elem:
|
||||||
*/
|
*/
|
||||||
TOK_ID '=' TOK_CONSTANT opt_deprecated
|
TOK_ID '=' TOK_CONSTANT opt_deprecated
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
assert(cur_enum_type);
|
assert(cur_enum_type);
|
||||||
|
|
||||||
if ( $3->GetType()->Tag() != zeek::TYPE_COUNT )
|
if ( $3->GetType()->Tag() != zeek::TYPE_COUNT )
|
||||||
|
@ -817,7 +817,7 @@ enum_body_elem:
|
||||||
|
|
||||||
| TOK_ID opt_deprecated
|
| TOK_ID opt_deprecated
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
assert(cur_enum_type);
|
assert(cur_enum_type);
|
||||||
cur_enum_type->AddName(zeek::detail::current_module, $1, is_export, $2);
|
cur_enum_type->AddName(zeek::detail::current_module, $1, is_export, $2);
|
||||||
}
|
}
|
||||||
|
@ -825,84 +825,84 @@ enum_body_elem:
|
||||||
|
|
||||||
type:
|
type:
|
||||||
TOK_BOOL {
|
TOK_BOOL {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_BOOL)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_BOOL)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_INT {
|
| TOK_INT {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_INT)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_INT)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_COUNT {
|
| TOK_COUNT {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_COUNT)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_COUNT)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_COUNTER {
|
| TOK_COUNTER {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_COUNTER)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_COUNTER)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_DOUBLE {
|
| TOK_DOUBLE {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_DOUBLE)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_DOUBLE)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_TIME {
|
| TOK_TIME {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_TIME)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_TIME)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_INTERVAL {
|
| TOK_INTERVAL {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_INTERVAL)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_INTERVAL)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_STRING {
|
| TOK_STRING {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_STRING)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_STRING)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_PATTERN {
|
| TOK_PATTERN {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_PATTERN)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_PATTERN)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_TIMER {
|
| TOK_TIMER {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_TIMER)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_TIMER)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_PORT {
|
| TOK_PORT {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_PORT)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_PORT)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_ADDR {
|
| TOK_ADDR {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_ADDR)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_ADDR)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_SUBNET {
|
| TOK_SUBNET {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_SUBNET)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_SUBNET)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_ANY {
|
| TOK_ANY {
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = zeek::base_type(zeek::TYPE_ANY)->Ref();
|
$$ = zeek::base_type(zeek::TYPE_ANY)->Ref();
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_TABLE '[' type_list ']' TOK_OF type
|
| TOK_TABLE '[' type_list ']' TOK_OF type
|
||||||
{
|
{
|
||||||
set_location(@1, @6);
|
zeek::detail::set_location(@1, @6);
|
||||||
$$ = new zeek::TableType({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $6});
|
$$ = new zeek::TableType({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $6});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_SET '[' type_list ']'
|
| TOK_SET '[' type_list ']'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::SetType({zeek::AdoptRef{}, $3}, nullptr);
|
$$ = new zeek::SetType({zeek::AdoptRef{}, $3}, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -912,27 +912,27 @@ type:
|
||||||
{ --in_record; }
|
{ --in_record; }
|
||||||
'}'
|
'}'
|
||||||
{
|
{
|
||||||
set_location(@1, @5);
|
zeek::detail::set_location(@1, @5);
|
||||||
$$ = new zeek::RecordType($4);
|
$$ = new zeek::RecordType($4);
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_UNION '{' type_list '}'
|
| TOK_UNION '{' type_list '}'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
reporter->Error("union type not implemented");
|
reporter->Error("union type not implemented");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_ENUM '{' { set_location(@1); parser_new_enum(); } enum_body '}'
|
| TOK_ENUM '{' { zeek::detail::set_location(@1); parser_new_enum(); } enum_body '}'
|
||||||
{
|
{
|
||||||
set_location(@1, @5);
|
zeek::detail::set_location(@1, @5);
|
||||||
$4->UpdateLocationEndInfo(@5);
|
$4->UpdateLocationEndInfo(@5);
|
||||||
$$ = $4;
|
$$ = $4;
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_LIST
|
| TOK_LIST
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
// $$ = new TypeList();
|
// $$ = new TypeList();
|
||||||
reporter->Error("list type not implemented");
|
reporter->Error("list type not implemented");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
|
@ -940,7 +940,7 @@ type:
|
||||||
|
|
||||||
| TOK_LIST TOK_OF type
|
| TOK_LIST TOK_OF type
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
// $$ = new TypeList($3);
|
// $$ = new TypeList($3);
|
||||||
reporter->Error("list type not implemented");
|
reporter->Error("list type not implemented");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
|
@ -948,43 +948,43 @@ type:
|
||||||
|
|
||||||
| TOK_VECTOR TOK_OF type
|
| TOK_VECTOR TOK_OF type
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::VectorType({zeek::AdoptRef{}, $3});
|
$$ = new zeek::VectorType({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_FUNCTION func_params
|
| TOK_FUNCTION func_params
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = $2;
|
$$ = $2;
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_EVENT '(' formal_args ')'
|
| TOK_EVENT '(' formal_args ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::FuncType({zeek::AdoptRef{}, $3}, nullptr, zeek::FUNC_FLAVOR_EVENT);
|
$$ = new zeek::FuncType({zeek::AdoptRef{}, $3}, nullptr, zeek::FUNC_FLAVOR_EVENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_HOOK '(' formal_args ')'
|
| TOK_HOOK '(' formal_args ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::FuncType({zeek::AdoptRef{}, $3}, zeek::base_type(zeek::TYPE_BOOL), zeek::FUNC_FLAVOR_HOOK);
|
$$ = new zeek::FuncType({zeek::AdoptRef{}, $3}, zeek::base_type(zeek::TYPE_BOOL), zeek::FUNC_FLAVOR_HOOK);
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_FILE TOK_OF type
|
| TOK_FILE TOK_OF type
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::FileType({zeek::AdoptRef{}, $3});
|
$$ = new zeek::FileType({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_FILE
|
| TOK_FILE
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
$$ = new zeek::FileType(zeek::base_type(zeek::TYPE_STRING));
|
$$ = new zeek::FileType(zeek::base_type(zeek::TYPE_STRING));
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_OPAQUE TOK_OF TOK_ID
|
| TOK_OPAQUE TOK_OF TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::OpaqueType($3);
|
$$ = new zeek::OpaqueType($3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1031,7 +1031,7 @@ type_decl_list:
|
||||||
type_decl:
|
type_decl:
|
||||||
TOK_ID ':' type opt_attr ';'
|
TOK_ID ':' type opt_attr ';'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
auto attrs = make_attributes($4, {zeek::NewRef{}, $3}, in_record > 0, false);
|
auto attrs = make_attributes($4, {zeek::NewRef{}, $3}, in_record > 0, false);
|
||||||
$$ = new zeek::TypeDecl($1, {zeek::AdoptRef{}, $3}, std::move(attrs));
|
$$ = new zeek::TypeDecl($1, {zeek::AdoptRef{}, $3}, std::move(attrs));
|
||||||
|
|
||||||
|
@ -1061,7 +1061,7 @@ formal_args_decl_list:
|
||||||
formal_args_decl:
|
formal_args_decl:
|
||||||
TOK_ID ':' type opt_attr
|
TOK_ID ':' type opt_attr
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
auto attrs = make_attributes($4, {zeek::NewRef{}, $3}, true, false);
|
auto attrs = make_attributes($4, {zeek::NewRef{}, $3}, true, false);
|
||||||
$$ = new zeek::TypeDecl($1, {zeek::AdoptRef{}, $3}, std::move(attrs));
|
$$ = new zeek::TypeDecl($1, {zeek::AdoptRef{}, $3}, std::move(attrs));
|
||||||
}
|
}
|
||||||
|
@ -1230,7 +1230,7 @@ func_body:
|
||||||
|
|
||||||
'}'
|
'}'
|
||||||
{
|
{
|
||||||
set_location(func_hdr_location, @5);
|
zeek::detail::set_location(func_hdr_location, @5);
|
||||||
end_func({zeek::AdoptRef{}, $3});
|
end_func({zeek::AdoptRef{}, $3});
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -1250,7 +1250,7 @@ lambda_body:
|
||||||
|
|
||||||
'}'
|
'}'
|
||||||
{
|
{
|
||||||
set_location(@1, @5);
|
zeek::detail::set_location(@1, @5);
|
||||||
|
|
||||||
// Code duplication here is sad but needed. end_func actually instantiates the function
|
// Code duplication here is sad but needed. end_func actually instantiates the function
|
||||||
// and associates it with an ID. We perform that association later and need to return
|
// and associates it with an ID. We perform that association later and need to return
|
||||||
|
@ -1319,7 +1319,7 @@ init:
|
||||||
index_slice:
|
index_slice:
|
||||||
expr '[' opt_expr ':' opt_expr ']'
|
expr '[' opt_expr ':' opt_expr ']'
|
||||||
{
|
{
|
||||||
set_location(@1, @6);
|
zeek::detail::set_location(@1, @6);
|
||||||
|
|
||||||
auto low = $3 ? zeek::detail::ExprPtr{zeek::AdoptRef{}, $3} :
|
auto low = $3 ? zeek::detail::ExprPtr{zeek::AdoptRef{}, $3} :
|
||||||
zeek::make_intrusive<zeek::detail::ConstExpr>(zeek::val_mgr->Count(0));
|
zeek::make_intrusive<zeek::detail::ConstExpr>(zeek::val_mgr->Count(0));
|
||||||
|
@ -1406,7 +1406,7 @@ attr:
|
||||||
stmt:
|
stmt:
|
||||||
'{' opt_no_test_block stmt_list '}'
|
'{' opt_no_test_block stmt_list '}'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = $3;
|
$$ = $3;
|
||||||
if ( $2 )
|
if ( $2 )
|
||||||
brofiler.DecIgnoreDepth();
|
brofiler.DecIgnoreDepth();
|
||||||
|
@ -1414,7 +1414,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_PRINT expr_list ';' opt_no_test
|
| TOK_PRINT expr_list ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::PrintStmt(zeek::IntrusivePtr{zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::PrintStmt(zeek::IntrusivePtr{zeek::AdoptRef{}, $2});
|
||||||
if ( ! $4 )
|
if ( ! $4 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1422,7 +1422,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_EVENT event ';' opt_no_test
|
| TOK_EVENT event ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::EventStmt({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::EventStmt({zeek::AdoptRef{}, $2});
|
||||||
if ( ! $4 )
|
if ( ! $4 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1430,19 +1430,19 @@ stmt:
|
||||||
|
|
||||||
| TOK_IF '(' expr ')' stmt
|
| TOK_IF '(' expr ')' stmt
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::IfStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5}, zeek::make_intrusive<zeek::detail::NullStmt>());
|
$$ = new zeek::detail::IfStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5}, zeek::make_intrusive<zeek::detail::NullStmt>());
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_IF '(' expr ')' stmt TOK_ELSE stmt
|
| TOK_IF '(' expr ')' stmt TOK_ELSE stmt
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::IfStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5}, {zeek::AdoptRef{}, $7});
|
$$ = new zeek::detail::IfStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5}, {zeek::AdoptRef{}, $7});
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_SWITCH expr '{' case_list '}'
|
| TOK_SWITCH expr '{' case_list '}'
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::SwitchStmt({zeek::AdoptRef{}, $2}, $4);
|
$$ = new zeek::detail::SwitchStmt({zeek::AdoptRef{}, $2}, $4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1458,7 +1458,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_NEXT ';' opt_no_test
|
| TOK_NEXT ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::NextStmt;
|
$$ = new zeek::detail::NextStmt;
|
||||||
if ( ! $3 )
|
if ( ! $3 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1466,7 +1466,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_BREAK ';' opt_no_test
|
| TOK_BREAK ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::BreakStmt;
|
$$ = new zeek::detail::BreakStmt;
|
||||||
if ( ! $3 )
|
if ( ! $3 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1474,7 +1474,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_FALLTHROUGH ';' opt_no_test
|
| TOK_FALLTHROUGH ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::FallthroughStmt;
|
$$ = new zeek::detail::FallthroughStmt;
|
||||||
if ( ! $3 )
|
if ( ! $3 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1482,7 +1482,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_RETURN ';' opt_no_test
|
| TOK_RETURN ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::ReturnStmt(0);
|
$$ = new zeek::detail::ReturnStmt(0);
|
||||||
if ( ! $3 )
|
if ( ! $3 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1490,7 +1490,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_RETURN expr ';' opt_no_test
|
| TOK_RETURN expr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::ReturnStmt({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::ReturnStmt({zeek::AdoptRef{}, $2});
|
||||||
if ( ! $4 )
|
if ( ! $4 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1498,7 +1498,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_ADD expr ';' opt_no_test
|
| TOK_ADD expr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::AddStmt({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::AddStmt({zeek::AdoptRef{}, $2});
|
||||||
if ( ! $4 )
|
if ( ! $4 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1506,7 +1506,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_DELETE expr ';' opt_no_test
|
| TOK_DELETE expr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
zeek::detail::set_location(@1, @3);
|
||||||
$$ = new zeek::detail::DelStmt({zeek::AdoptRef{}, $2});
|
$$ = new zeek::detail::DelStmt({zeek::AdoptRef{}, $2});
|
||||||
if ( ! $4 )
|
if ( ! $4 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1514,7 +1514,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_LOCAL local_id opt_type init_class opt_init opt_attr ';' opt_no_test
|
| TOK_LOCAL local_id opt_type init_class opt_init opt_attr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @7);
|
zeek::detail::set_location(@1, @7);
|
||||||
$$ = add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4,
|
$$ = add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4,
|
||||||
{zeek::AdoptRef{}, $5},
|
{zeek::AdoptRef{}, $5},
|
||||||
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$6},
|
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$6},
|
||||||
|
@ -1525,7 +1525,7 @@ stmt:
|
||||||
|
|
||||||
| TOK_CONST local_id opt_type init_class opt_init opt_attr ';' opt_no_test
|
| TOK_CONST local_id opt_type init_class opt_init opt_attr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @6);
|
zeek::detail::set_location(@1, @6);
|
||||||
$$ = add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4,
|
$$ = add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4,
|
||||||
{zeek::AdoptRef{}, $5},
|
{zeek::AdoptRef{}, $5},
|
||||||
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$6},
|
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$6},
|
||||||
|
@ -1536,14 +1536,14 @@ stmt:
|
||||||
|
|
||||||
| TOK_WHEN '(' expr ')' stmt
|
| TOK_WHEN '(' expr ')' stmt
|
||||||
{
|
{
|
||||||
set_location(@3, @5);
|
zeek::detail::set_location(@3, @5);
|
||||||
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5},
|
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5},
|
||||||
nullptr, nullptr, false);
|
nullptr, nullptr, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_WHEN '(' expr ')' stmt TOK_TIMEOUT expr '{' opt_no_test_block stmt_list '}'
|
| TOK_WHEN '(' expr ')' stmt TOK_TIMEOUT expr '{' opt_no_test_block stmt_list '}'
|
||||||
{
|
{
|
||||||
set_location(@3, @9);
|
zeek::detail::set_location(@3, @9);
|
||||||
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5},
|
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $3}, {zeek::AdoptRef{}, $5},
|
||||||
{zeek::AdoptRef{}, $10}, {zeek::AdoptRef{}, $7}, false);
|
{zeek::AdoptRef{}, $10}, {zeek::AdoptRef{}, $7}, false);
|
||||||
if ( $9 )
|
if ( $9 )
|
||||||
|
@ -1553,14 +1553,14 @@ stmt:
|
||||||
|
|
||||||
| TOK_RETURN TOK_WHEN '(' expr ')' stmt
|
| TOK_RETURN TOK_WHEN '(' expr ')' stmt
|
||||||
{
|
{
|
||||||
set_location(@4, @6);
|
zeek::detail::set_location(@4, @6);
|
||||||
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $4}, {zeek::AdoptRef{}, $6}, nullptr,
|
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $4}, {zeek::AdoptRef{}, $6}, nullptr,
|
||||||
nullptr, true);
|
nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_RETURN TOK_WHEN '(' expr ')' stmt TOK_TIMEOUT expr '{' opt_no_test_block stmt_list '}'
|
| TOK_RETURN TOK_WHEN '(' expr ')' stmt TOK_TIMEOUT expr '{' opt_no_test_block stmt_list '}'
|
||||||
{
|
{
|
||||||
set_location(@4, @10);
|
zeek::detail::set_location(@4, @10);
|
||||||
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $4}, {zeek::AdoptRef{}, $6},
|
$$ = new zeek::detail::WhenStmt({zeek::AdoptRef{}, $4}, {zeek::AdoptRef{}, $6},
|
||||||
{zeek::AdoptRef{}, $11}, {zeek::AdoptRef{}, $8}, true);
|
{zeek::AdoptRef{}, $11}, {zeek::AdoptRef{}, $8}, true);
|
||||||
if ( $10 )
|
if ( $10 )
|
||||||
|
@ -1569,7 +1569,7 @@ stmt:
|
||||||
|
|
||||||
| index_slice '=' expr ';' opt_no_test
|
| index_slice '=' expr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
$$ = new zeek::detail::ExprStmt(zeek::detail::get_assign_expr({zeek::AdoptRef{}, $1},
|
$$ = new zeek::detail::ExprStmt(zeek::detail::get_assign_expr({zeek::AdoptRef{}, $1},
|
||||||
{zeek::AdoptRef{}, $3}, in_init));
|
{zeek::AdoptRef{}, $3}, in_init));
|
||||||
|
|
||||||
|
@ -1579,7 +1579,7 @@ stmt:
|
||||||
|
|
||||||
| expr ';' opt_no_test
|
| expr ';' opt_no_test
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$$ = new zeek::detail::ExprStmt({zeek::AdoptRef{}, $1});
|
$$ = new zeek::detail::ExprStmt({zeek::AdoptRef{}, $1});
|
||||||
if ( ! $3 )
|
if ( ! $3 )
|
||||||
brofiler.AddStmt($$);
|
brofiler.AddStmt($$);
|
||||||
|
@ -1587,7 +1587,7 @@ stmt:
|
||||||
|
|
||||||
| ';'
|
| ';'
|
||||||
{
|
{
|
||||||
set_location(@1, @1);
|
zeek::detail::set_location(@1, @1);
|
||||||
$$ = new zeek::detail::NullStmt;
|
$$ = new zeek::detail::NullStmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1598,7 +1598,7 @@ stmt:
|
||||||
stmt_list:
|
stmt_list:
|
||||||
stmt_list stmt
|
stmt_list stmt
|
||||||
{
|
{
|
||||||
set_location(@1, @2);
|
zeek::detail::set_location(@1, @2);
|
||||||
$1->AsStmtList()->Stmts().push_back($2);
|
$1->AsStmtList()->Stmts().push_back($2);
|
||||||
$1->UpdateLocationEndInfo(@2);
|
$1->UpdateLocationEndInfo(@2);
|
||||||
}
|
}
|
||||||
|
@ -1609,7 +1609,7 @@ stmt_list:
|
||||||
event:
|
event:
|
||||||
TOK_ID '(' opt_expr_list ')'
|
TOK_ID '(' opt_expr_list ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @4);
|
zeek::detail::set_location(@1, @4);
|
||||||
const auto& id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
const auto& id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
||||||
|
|
||||||
if ( id )
|
if ( id )
|
||||||
|
@ -1683,7 +1683,7 @@ case_type:
|
||||||
for_head:
|
for_head:
|
||||||
TOK_FOR '(' TOK_ID TOK_IN expr ')'
|
TOK_FOR '(' TOK_ID TOK_IN expr ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @6);
|
zeek::detail::set_location(@1, @6);
|
||||||
|
|
||||||
// This rule needs to be separate from the loop
|
// This rule needs to be separate from the loop
|
||||||
// body so that we execute these actions - defining
|
// body so that we execute these actions - defining
|
||||||
|
@ -1716,7 +1716,7 @@ for_head:
|
||||||
|
|
|
|
||||||
TOK_FOR '(' TOK_ID ',' TOK_ID TOK_IN expr ')'
|
TOK_FOR '(' TOK_ID ',' TOK_ID TOK_IN expr ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @8);
|
zeek::detail::set_location(@1, @8);
|
||||||
const char* module = zeek::detail::current_module.c_str();
|
const char* module = zeek::detail::current_module.c_str();
|
||||||
|
|
||||||
// Check for previous definitions of key and
|
// Check for previous definitions of key and
|
||||||
|
@ -1749,7 +1749,7 @@ for_head:
|
||||||
|
|
|
|
||||||
TOK_FOR '(' '[' local_id_list ']' ',' TOK_ID TOK_IN expr ')'
|
TOK_FOR '(' '[' local_id_list ']' ',' TOK_ID TOK_IN expr ')'
|
||||||
{
|
{
|
||||||
set_location(@1, @10);
|
zeek::detail::set_location(@1, @10);
|
||||||
const char* module = zeek::detail::current_module.c_str();
|
const char* module = zeek::detail::current_module.c_str();
|
||||||
|
|
||||||
// Validate value variable
|
// Validate value variable
|
||||||
|
@ -1780,7 +1780,7 @@ local_id_list:
|
||||||
local_id:
|
local_id:
|
||||||
TOK_ID
|
TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
||||||
$$ = id.release();
|
$$ = id.release();
|
||||||
|
|
||||||
|
@ -1817,7 +1817,7 @@ event_id:
|
||||||
global_or_event_id:
|
global_or_event_id:
|
||||||
TOK_ID
|
TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str(), false,
|
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str(), false,
|
||||||
defining_global_ID);
|
defining_global_ID);
|
||||||
$$ = id.release();
|
$$ = id.release();
|
||||||
|
@ -1855,7 +1855,7 @@ global_or_event_id:
|
||||||
resolve_id:
|
resolve_id:
|
||||||
TOK_ID
|
TOK_ID
|
||||||
{
|
{
|
||||||
set_location(@1);
|
zeek::detail::set_location(@1);
|
||||||
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
auto id = zeek::detail::lookup_ID($1, zeek::detail::current_module.c_str());
|
||||||
$$ = id.release();
|
$$ = id.release();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue