aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dfilter/grammar.lemon
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dfilter/grammar.lemon')
-rw-r--r--epan/dfilter/grammar.lemon10
1 files changed, 10 insertions, 0 deletions
diff --git a/epan/dfilter/grammar.lemon b/epan/dfilter/grammar.lemon
index 8e4a3ed331..d0b7315f11 100644
--- a/epan/dfilter/grammar.lemon
+++ b/epan/dfilter/grammar.lemon
@@ -166,6 +166,16 @@ atom(E) ::= IDENTIFIER(F).
df_lval_free(F, FALSE);
}
entity(E) ::= atom(A). { E = A; }
+entity(E) ::= REF_OPEN REFERENCE(F) REF_CLOSE.
+{
+ char *name = df_lval_value(F);
+ header_field_info *hfinfo = dfilter_resolve_unparsed(dfw, name);
+ if (hfinfo == NULL) {
+ dfilter_fail(dfw, "\"%s\" is not a valid protocol or protocol field.", name);
+ }
+ E = stnode_new(STTYPE_REFERENCE, hfinfo, df_lval_value(F));
+ df_lval_free(F, FALSE);
+}
entity(E) ::= range(R). { E = R; }
entity(E) ::= function(F). { E = F; }