mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 10:38:20 +00:00
More lexer/parser work.
This commit is contained in:
parent
2494940d95
commit
622190b4ef
2 changed files with 16 additions and 6 deletions
17
src/parse.y
17
src/parse.y
|
@ -11,11 +11,12 @@
|
||||||
%token TOK_DOUBLE TOK_ELSE TOK_ENUM TOK_EVENT TOK_EXPORT TOK_FILE TOK_FOR
|
%token TOK_DOUBLE TOK_ELSE TOK_ENUM TOK_EVENT TOK_EXPORT TOK_FILE TOK_FOR
|
||||||
%token TOK_FUNCTION TOK_GLOBAL TOK_HOOK TOK_ID TOK_IF TOK_INT
|
%token TOK_FUNCTION TOK_GLOBAL TOK_HOOK TOK_ID TOK_IF TOK_INT
|
||||||
%token TOK_INTERVAL TOK_LIST TOK_LOCAL TOK_MODULE
|
%token TOK_INTERVAL TOK_LIST TOK_LOCAL TOK_MODULE
|
||||||
%token TOK_NEXT TOK_OF TOK_OPAQUE TOK_PATTERN TOK_PATTERN_TEXT
|
%token TOK_NEXT TOK_OF TOK_PATTERN TOK_PATTERN_TEXT
|
||||||
%token TOK_PORT TOK_PRINT TOK_RECORD TOK_REDEF
|
%token TOK_PORT TOK_PRINT TOK_RECORD TOK_REDEF
|
||||||
%token TOK_REMOVE_FROM TOK_RETURN TOK_SCHEDULE TOK_SET
|
%token TOK_REMOVE_FROM TOK_RETURN TOK_SCHEDULE TOK_SET
|
||||||
%token TOK_STRING TOK_SUBNET TOK_SWITCH TOK_TABLE
|
%token TOK_STRING TOK_SUBNET TOK_SWITCH TOK_TABLE
|
||||||
%token TOK_TIME TOK_TIMEOUT TOK_TIMER TOK_TYPE TOK_UNION TOK_VECTOR TOK_WHEN
|
%token TOK_TIME TOK_TIMEOUT TOK_TIMER TOK_TYPE TOK_UNION TOK_VECTOR TOK_WHEN
|
||||||
|
%token TOK_OPAQUE TOK_OPAQUE_MD5 TOK_OPAQUE_HYPERLOGLOG
|
||||||
|
|
||||||
%token TOK_ATTR_ADD_FUNC TOK_ATTR_ATTR TOK_ATTR_ENCRYPT TOK_ATTR_DEFAULT
|
%token TOK_ATTR_ADD_FUNC TOK_ATTR_ATTR TOK_ATTR_ENCRYPT TOK_ATTR_DEFAULT
|
||||||
%token TOK_ATTR_OPTIONAL TOK_ATTR_REDEF TOK_ATTR_ROTATE_INTERVAL
|
%token TOK_ATTR_OPTIONAL TOK_ATTR_REDEF TOK_ATTR_ROTATE_INTERVAL
|
||||||
|
@ -46,7 +47,7 @@
|
||||||
%left '$' '[' ']' '(' ')' TOK_HAS_FIELD TOK_HAS_ATTR
|
%left '$' '[' ']' '(' ')' TOK_HAS_FIELD TOK_HAS_ATTR
|
||||||
|
|
||||||
%type <b> opt_no_test opt_no_test_block
|
%type <b> opt_no_test opt_no_test_block
|
||||||
%type <str> TOK_ID TOK_PATTERN_TEXT single_pattern TOK_DOC TOK_POST_DOC
|
%type <str> TOK_ID TOK_PATTERN_TEXT single_pattern TOK_DOC TOK_POST_DOC opaque_id
|
||||||
%type <str_l> opt_doc_list opt_post_doc_list
|
%type <str_l> opt_doc_list opt_post_doc_list
|
||||||
%type <id> local_id global_id def_global_id event_id global_or_event_id resolve_id begin_func
|
%type <id> local_id global_id def_global_id event_id global_or_event_id resolve_id begin_func
|
||||||
%type <id_l> local_id_list
|
%type <id_l> local_id_list
|
||||||
|
@ -565,7 +566,6 @@ expr:
|
||||||
id->SetType(error_type());
|
id->SetType(error_type());
|
||||||
$$ = new NameExpr(id);
|
$$ = new NameExpr(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( id->IsEnumConst() )
|
else if ( id->IsEnumConst() )
|
||||||
{
|
{
|
||||||
EnumType* t = id->Type()->AsEnumType();
|
EnumType* t = id->Type()->AsEnumType();
|
||||||
|
@ -890,10 +890,10 @@ type:
|
||||||
$$ = new FileType(base_type(TYPE_STRING));
|
$$ = new FileType(base_type(TYPE_STRING));
|
||||||
}
|
}
|
||||||
|
|
||||||
| TOK_OPAQUE TOK_OF TOK_ID
|
| TOK_OPAQUE TOK_OF opaque_id
|
||||||
{
|
{
|
||||||
set_location(@1, @3);
|
set_location(@1, @3);
|
||||||
$$ = new OpaqueType($3);
|
$$ = new OpaqueType(@3);
|
||||||
}
|
}
|
||||||
|
|
||||||
| resolve_id
|
| resolve_id
|
||||||
|
@ -910,6 +910,13 @@ type:
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
opaque_id:
|
||||||
|
TOK_OPAQUE_MD5
|
||||||
|
{ }
|
||||||
|
| TOK_OPAQUE_HYPERLOGLOG
|
||||||
|
{ }
|
||||||
|
;
|
||||||
|
|
||||||
type_list:
|
type_list:
|
||||||
type_list ',' type
|
type_list ',' type
|
||||||
{ $1->AppendEvenIfNotPure($3); }
|
{ $1->AppendEvenIfNotPure($3); }
|
||||||
|
|
|
@ -298,7 +298,6 @@ local return TOK_LOCAL;
|
||||||
module return TOK_MODULE;
|
module return TOK_MODULE;
|
||||||
next return TOK_NEXT;
|
next return TOK_NEXT;
|
||||||
of return TOK_OF;
|
of return TOK_OF;
|
||||||
opaque return TOK_OPAQUE;
|
|
||||||
pattern return TOK_PATTERN;
|
pattern return TOK_PATTERN;
|
||||||
port return TOK_PORT;
|
port return TOK_PORT;
|
||||||
print return TOK_PRINT;
|
print return TOK_PRINT;
|
||||||
|
@ -319,6 +318,10 @@ union return TOK_UNION;
|
||||||
vector return TOK_VECTOR;
|
vector return TOK_VECTOR;
|
||||||
when return TOK_WHEN;
|
when return TOK_WHEN;
|
||||||
|
|
||||||
|
opaque return TOK_OPAQUE;
|
||||||
|
md5 return TOK_OPAQUE_MD5;
|
||||||
|
hyper-log-log return TOK_OPAQUE_HYPERLOGLOG;
|
||||||
|
|
||||||
&add_func return TOK_ATTR_ADD_FUNC;
|
&add_func return TOK_ATTR_ADD_FUNC;
|
||||||
&attr return TOK_ATTR_ATTR;
|
&attr return TOK_ATTR_ATTR;
|
||||||
&create_expire return TOK_ATTR_EXPIRE_CREATE;
|
&create_expire return TOK_ATTR_EXPIRE_CREATE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue