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:
Tim Wojtulewicz 2020-07-15 15:24:19 -07:00
parent 118605f4ac
commit 4d96b7f1cc
6 changed files with 140 additions and 121 deletions

View file

@ -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;

View file

@ -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(); }

View file

@ -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);
}

View file

@ -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,

View file

@ -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,

View file

@ -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();