mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 00:28:21 +00:00
Merge remote-tracking branch 'origin/topic/johanna/bit-1619'
BIT-1619 #merged * origin/topic/johanna/bit-1619: Fix precedence of hook
This commit is contained in:
commit
a4db7f1359
5 changed files with 39 additions and 2 deletions
8
CHANGES
8
CHANGES
|
@ -1,4 +1,12 @@
|
||||||
|
|
||||||
|
2.4-606 | 2016-06-14 16:11:07 -0700
|
||||||
|
|
||||||
|
* Fix parsing precedence of "hook" expression. Addresses BIT-1619
|
||||||
|
(Johanna Amann)
|
||||||
|
|
||||||
|
* Update the "configure" usage message for --with-caf (Daniel
|
||||||
|
Thayer)
|
||||||
|
|
||||||
2.4-602 | 2016-06-13 08:16:34 -0700
|
2.4-602 | 2016-06-13 08:16:34 -0700
|
||||||
|
|
||||||
* Fixing Covertity warning (CID 1356391). (Robin Sommer)
|
* Fixing Covertity warning (CID 1356391). (Robin Sommer)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2.4-602
|
2.4-606
|
||||||
|
|
|
@ -31,12 +31,12 @@
|
||||||
|
|
||||||
%token TOK_NO_TEST
|
%token TOK_NO_TEST
|
||||||
|
|
||||||
%nonassoc TOK_HOOK
|
|
||||||
%left ',' '|'
|
%left ',' '|'
|
||||||
%right '=' TOK_ADD_TO TOK_REMOVE_FROM
|
%right '=' TOK_ADD_TO TOK_REMOVE_FROM
|
||||||
%right '?' ':'
|
%right '?' ':'
|
||||||
%left TOK_OR
|
%left TOK_OR
|
||||||
%left TOK_AND
|
%left TOK_AND
|
||||||
|
%nonassoc TOK_HOOK
|
||||||
%nonassoc '<' '>' TOK_LE TOK_GE TOK_EQ TOK_NE
|
%nonassoc '<' '>' TOK_LE TOK_GE TOK_EQ TOK_NE
|
||||||
%left TOK_IN TOK_NOT_IN
|
%left TOK_IN TOK_NOT_IN
|
||||||
%left '+' '-'
|
%left '+' '-'
|
||||||
|
|
|
@ -17,3 +17,7 @@ myhook return F
|
||||||
myhook return T
|
myhook return T
|
||||||
myhook, &priority=5, [a=37, b=goobye world]
|
myhook, &priority=5, [a=37, b=goobye world]
|
||||||
F
|
F
|
||||||
|
myhook5, test
|
||||||
|
second part ran
|
||||||
|
myhook5 ran
|
||||||
|
myhook6, test
|
||||||
|
|
|
@ -10,6 +10,8 @@ global myhook: hook(r: rec);
|
||||||
global myhook2: hook(s: string);
|
global myhook2: hook(s: string);
|
||||||
# a hook doesn't have to take any arguments
|
# a hook doesn't have to take any arguments
|
||||||
global myhook4: hook();
|
global myhook4: hook();
|
||||||
|
global myhook5: hook(s: string);
|
||||||
|
global myhook6: hook(s: string);
|
||||||
|
|
||||||
hook myhook(r: rec) &priority=5
|
hook myhook(r: rec) &priority=5
|
||||||
{
|
{
|
||||||
|
@ -72,6 +74,23 @@ hook myhook4() &priority=2
|
||||||
print "myhook4", 2;
|
print "myhook4", 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hook myhook5(s: string)
|
||||||
|
{
|
||||||
|
print "myhook5", s;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook myhook6(s: string)
|
||||||
|
{
|
||||||
|
print "myhook6", s;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
function printMe(s: string): bool
|
||||||
|
{
|
||||||
|
print s;
|
||||||
|
return T;
|
||||||
|
}
|
||||||
|
|
||||||
event bro_init()
|
event bro_init()
|
||||||
{
|
{
|
||||||
print hook myhook([$a=1156, $b="hello world"]);
|
print hook myhook([$a=1156, $b="hello world"]);
|
||||||
|
@ -90,4 +109,10 @@ event bro_init()
|
||||||
# invoked directly by name.
|
# invoked directly by name.
|
||||||
local h = myhook;
|
local h = myhook;
|
||||||
print hook h([$a=2, $b="it works"]);
|
print hook h([$a=2, $b="it works"]);
|
||||||
|
|
||||||
|
if ( hook myhook5("test") && printMe("second part ran") )
|
||||||
|
print "myhook5 ran";
|
||||||
|
|
||||||
|
if ( ( hook myhook6("test") ) && printMe("second part ran") )
|
||||||
|
print "myhook6 ran";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue