mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
// See the file "COPYING" in the main distribution directory for copyright.
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <cstdio>
|
|
|
|
enum builtin_func_arg_type : uint8_t {
|
|
#define DEFINE_BIF_TYPE(id, bif_type, bro_type, c_type, c_type_smart, accessor, accessor_smart, cast_smart, \
|
|
constructor, ctor_smart) \
|
|
id,
|
|
#include "bif_type.def"
|
|
#undef DEFINE_BIF_TYPE
|
|
};
|
|
|
|
extern const char* builtin_func_arg_type_bro_name[];
|
|
|
|
class BuiltinFuncArg final {
|
|
public:
|
|
BuiltinFuncArg(const char* arg_name, int arg_type);
|
|
BuiltinFuncArg(const char* arg_name, const char* arg_type_str, const char* arg_attr_str = "");
|
|
|
|
void SetAttrStr(const char* arg_attr_str) { attr_str = arg_attr_str; };
|
|
|
|
const char* Name() const { return name; }
|
|
int Type() const { return type; }
|
|
|
|
void PrintZeek(FILE* fp);
|
|
void PrintCDef(FILE* fp, int n, bool runtime_type_check = false);
|
|
void PrintCArg(FILE* fp, int n);
|
|
void PrintValConstructor(FILE* fp);
|
|
|
|
private:
|
|
const char* name;
|
|
int type;
|
|
const char* type_str;
|
|
const char* attr_str;
|
|
};
|