zeek/testing/btest/doc/zeekygen/comment_retrieval_bifs.zeek
2019-05-02 21:39:21 -07:00

107 lines
3.2 KiB
Text

# @TEST-EXEC: unset BRO_DISABLE_BROXYGEN; bro -b %INPUT >out
# @TEST-EXEC: btest-diff out
##! This is a test script.
##! With some summary comments.
## Hello world. This is an option.
## With some more description here.
## And here.
const myvar = 7 &redef; ##< Maybe just one more.
## This function prints a string line by line.
##
## lines: A string to print line by line, w/ lines delimited by newline chars.
global print_lines: function(lines: string, prefix: string &default="");
## And some more comments on the function implementation.
function print_lines(lines: string, prefix: string)
{
local v = split_string(lines, /\n/);
for ( i in v )
print fmt("%s%s", prefix, v[i]);
}
function print_comments(name: string, func: function(name: string): string)
{
print fmt("%s:", name);
print_lines(func(name), " ");
}
## This is an alias for count.
type mytype: count;
## My record type.
type myrecord: record {
## The first field.
## Does something...
aaa: count; ##< Done w/ aaa.
## The second field.
bbb: string; ##< Done w/ bbb.
##< No really, done w/ bbb.
## Third field.
ccc: int; ##< Done w/ ccc.
## Fourth field.
ddd: interval; ##< Done w/ ddd.
};
## My enum type;
type myenum: enum {
## First enum value.
## I know, the name isn't clever.
FIRST, ##< Done w/ first.
## Second enum value.
SECOND, ##< Done w/ second.
## Third enum value.
THIRD, ##< Done w/ third.
##< Done w/ third again.
## SIC.
## It's a programming language.
FORTH ##< Using Reverse Polish Notation.
##< Done w/ forth.
};
redef record myrecord += {
## First redef'd field.
## With two lines of comments.
eee: count &optional; ##< And two post-notation comments.
##< Done w/ eee.
## Second redef'd field.
fff: count &optional; ##< Done w/ fff.
## Third redef'd field.
ggg: count &optional; ##< Done w/ ggg.
};
redef enum myenum += {
## First redef'd enum val.
FIFTH, ##< Done w/ fifth.
## Second redef'd enum val.
SIXTH, ##< Done w/ sixth.
## Third redef'd enum val.
## Lucky number seven.
SEVENTH, ##< Still works with comma.
##< Done w/ seventh.
};
print_lines(get_script_comments(@DIR + "/" + @FILENAME));
print_comments("myvar", get_identifier_comments);
print_comments("print_lines", get_identifier_comments);
print_comments("mytype", get_identifier_comments);
print_comments("myrecord", get_identifier_comments);
print_comments("myrecord$aaa", get_record_field_comments);
print_comments("myrecord$bbb", get_record_field_comments);
print_comments("myrecord$ccc", get_record_field_comments);
print_comments("myrecord$ddd", get_record_field_comments);
print_comments("myrecord$eee", get_record_field_comments);
print_comments("myrecord$fff", get_record_field_comments);
print_comments("myrecord$ggg", get_record_field_comments);
print_comments("myenum", get_identifier_comments);
print_comments("FIRST", get_identifier_comments);
print_comments("SECOND", get_identifier_comments);
print_comments("THIRD", get_identifier_comments);
print_comments("FORTH", get_identifier_comments);
print_comments("FIFTH", get_identifier_comments);
print_comments("SIXTH", get_identifier_comments);
print_comments("SEVENTH", get_identifier_comments);