Kestrel Interface
Loading...
Searching...
No Matches
kest_expr_scope.h
Go to the documentation of this file.
1#ifndef KEST_EXPR_SCOPE_H_
2#define KEST_EXPR_SCOPE_H_
3
4#define KEST_SCOPE_ENTRY_TYPE_EXPR 0
5#define KEST_SCOPE_ENTRY_TYPE_PARAM 1
6#define KEST_SCOPE_ENTRY_TYPE_SETTING 2
7
8struct kest_expression;
9struct kest_parameter;
10struct kest_setting;
11
12typedef struct {
13 const char *name;
14 int type;
15 union {
19 } val;
21
25
27
28// like, really this should be a hash table but, i honestly
29// don't expect them to get particularly large so im
30// just going to use my default, beloved linked list
31typedef struct {
32 kest_expr_scope_entry_pll *entries;
34
37int kest_expr_scope_add_expr(kest_expr_scope *scope, const char *name, struct kest_expression *expr);
40
41struct kest_parameter_pll;
42struct kest_setting_pll;
43
44int kest_expr_scope_add_params(kest_expr_scope *scope, struct kest_parameter_pll *params);
45int kest_expr_scope_add_settings(kest_expr_scope *scope, struct kest_setting_pll *settings);
46
48
50
51#endif
kest_expr_scope_entry * kest_new_expr_scope_entry_expr(const char *name, struct kest_expression *expr)
kest_expr_scope_entry * kest_new_expr_scope_entry_param(struct kest_parameter *param)
int kest_expr_scope_init(kest_expr_scope *scope)
kest_expr_scope * kest_expr_scope_copy(kest_expr_scope *scope)
kest_expr_scope * kest_new_expr_scope()
kest_expr_scope_entry * kest_new_expr_scope_entry_setting(struct kest_setting *setting)
kest_expr_scope_entry * kest_expr_scope_fetch(kest_expr_scope *scope, const char *name)
int kest_expr_scope_add_settings(kest_expr_scope *scope, struct kest_setting_pll *settings)
int kest_expr_scope_add_params(kest_expr_scope *scope, struct kest_parameter_pll *params)
int kest_expr_scope_add_setting(kest_expr_scope *scope, struct kest_setting *setting)
int kest_expr_scope_add_param(kest_expr_scope *scope, struct kest_parameter *param)
int kest_expr_scope_add_expr(kest_expr_scope *scope, const char *name, struct kest_expression *expr)
#define DECLARE_LINKED_PTR_LIST(X)
int type
const char * name
struct kest_expression * expr
struct kest_parameter * param
struct kest_setting * setting
kest_expr_scope_entry_pll * entries
const char * name