zeek/src/bif_arg.h

46 lines
876 B
C++

// $Id: bif_arg.h 3234 2006-06-08 02:38:11Z vern $
#ifndef bif_arg_h
#define bif_arg_h
#include <stdio.h>
enum builtin_func_arg_type {
#define DEFINE_BIF_TYPE(id, bif_type, bro_type, c_type, accessor, constructor) \
id,
#include "bif_type.def"
#undef DEFINE_BIF_TYPE
/*
TYPE_ANY,
TYPE_BOOL,
TYPE_COUNT,
TYPE_INT,
TYPE_STRING,
TYPE_PATTERN,
TYPE_PORT,
TYPE_OTHER,
*/
};
extern const char* builtin_func_arg_type_bro_name[];
class BuiltinFuncArg {
public:
BuiltinFuncArg(const char* arg_name, int arg_type);
BuiltinFuncArg(const char* arg_name, const char* arg_type_str);
const char* Name() const { return name; }
int Type() const { return type; }
void PrintBro(FILE* fp);
void PrintCDef(FILE* fp, int n);
void PrintCArg(FILE* fp, int n);
void PrintBroValConstructor(FILE* fp);
protected:
const char* name;
int type;
const char* type_str;
};
#endif