mirror of
https://github.com/zeek/zeek.git
synced 2025-10-14 20:48:21 +00:00
48 lines
1.2 KiB
C++
48 lines
1.2 KiB
C++
// See the file "COPYING" in the main distribution directory for copyright.
|
|
|
|
#ifndef pac_param_h
|
|
#define pac_param_h
|
|
|
|
#include "pac_common.h"
|
|
#include "pac_field.h"
|
|
|
|
class Param : public Object {
|
|
public:
|
|
Param(ID* id, Type* type);
|
|
~Param();
|
|
|
|
ID* id() const { return id_; }
|
|
Type* type() const { return type_; }
|
|
const string& decl_str() const;
|
|
Field* param_field() const { return param_field_; }
|
|
|
|
private:
|
|
ID* id_;
|
|
Type* type_;
|
|
string decl_str_;
|
|
Field* param_field_;
|
|
};
|
|
|
|
class ParamField : public Field {
|
|
public:
|
|
ParamField(const Param* param);
|
|
|
|
void GenInitCode(Output* out, Env* env) override;
|
|
void GenCleanUpCode(Output* out, Env* env) override;
|
|
};
|
|
|
|
// Returns the string with a list of param declarations separated by ','.
|
|
string ParamDecls(ParamList* params);
|
|
|
|
#if 0
|
|
// Generate assignments to parameters, in the form of "%s_ = %s;" % (id, id).
|
|
void GenParamAssignments(ParamList *params, Output *out_cc, Env *env);
|
|
|
|
// Generate public access methods to parameter members.
|
|
void GenParamPubDecls(ParamList *params, Output *out_h, Env *env);
|
|
|
|
// Generate private definitions of parameter members.
|
|
void GenParamPrivDecls(ParamList *params, Output *out_h, Env *env);
|
|
#endif
|
|
|
|
#endif // pac_param_h
|