36static void debug(
const char*
fmt, ...);
84 name =
mapGet(expr,
"check");
100 arg =
mapGet(expr,
"exists");
114 name =
mapGet(arg,
"name");
129 name =
mapGet(expr,
"variable-exists");
146 arg =
mapGet(expr,
"equal");
191 arg =
mapGet(expr,
"not-equal");
236 arg =
mapGet(expr,
"regex-match");
275 arg =
mapGet(expr,
"iregex-match");
314 arg =
mapGet(expr,
"and");
402 arg =
mapGet(expr,
"not");
433 name =
mapGet(expr,
"variable-reference");
450 arg =
mapGet(expr,
"funcall");
456 name =
mapGet(arg,
"name");
465 args =
mapGet(arg,
"arguments");
478 debug(
"funcall null argument %u",
520 arg =
mapGet(expr,
"substring");
526 string =
mapGet(arg,
"expression");
527 if (
string ==
NULL) {
534 offset =
mapGet(arg,
"offset");
535 if (offset ==
NULL) {
542 length =
mapGet(arg,
"length");
543 if (length ==
NULL) {
560 arg =
mapGet(expr,
"suffix");
566 string =
mapGet(arg,
"expression");
567 if (
string ==
NULL) {
574 length =
mapGet(arg,
"length");
575 if (length ==
NULL) {
590 arg =
mapGet(expr,
"lowercase");
606 arg =
mapGet(expr,
"uppercase");
624 arg =
mapGet(expr,
"option");
638 name =
mapGet(arg,
"name");
664 arg =
mapGet(expr,
"const-data");
681 arg =
mapGet(expr,
"packet");
687 offset =
mapGet(arg,
"offset");
688 if (offset ==
NULL) {
695 length =
mapGet(arg,
"length");
696 if (length ==
NULL) {
713 arg =
mapGet(expr,
"concat");
743 arg =
mapGet(expr,
"encapsulate");
758 arg =
mapGet(expr,
"encode-int8");
774 arg =
mapGet(expr,
"encode-int16");
790 arg =
mapGet(expr,
"encode-int32");
806 arg =
mapGet(expr,
"gethostbyname");
826 arg =
mapGet(expr,
"binary-to-ascii");
832 base =
mapGet(arg,
"base");
840 width =
mapGet(arg,
"width");
848 separator =
mapGet(arg,
"separator");
849 if (separator ==
NULL) {
873 return "server-name";
882 arg =
mapGet(expr,
"reverse");
888 width =
mapGet(arg,
"width");
913 arg =
mapGet(expr,
"pick-first-value");
939 return "host-decl-name";
943 return "leased-address";
952 arg =
mapGet(expr,
"config-option");
966 name =
mapGet(arg,
"name");
982 return "gethostname";
992 arg =
mapGet(expr,
"v6relay");
998 relay =
mapGet(arg,
"relay");
1049 arg =
mapGet(expr,
"extract-int8");
1065 arg =
mapGet(expr,
"extract-int16");
1081 arg =
mapGet(expr,
"extract-int32");
1097 arg =
mapGet(expr,
"const-int");
1110 return "lease-time";
1120 arg =
mapGet(expr,
"add");
1165 arg =
mapGet(expr,
"subtract");
1210 arg =
mapGet(expr,
"multiply");
1255 arg =
mapGet(expr,
"divide");
1300 arg =
mapGet(expr,
"remainder");
1345 arg =
mapGet(expr,
"binary-and");
1390 arg =
mapGet(expr,
"binary-or");
1435 arg =
mapGet(expr,
"binary-xor");
1474 return "client-state";
1482debug(
const char*
fmt, ...)
void print_expression(char *name, struct expression *expr) const
void concatString(struct string *s, const struct string *a)
struct string * makeString(int l, const char *s)
isc_boolean_t boolValue(const struct element *e)
struct string * allocString(void)
void appendString(struct string *s, const char *a)
struct element * listGet(struct element *l, int i)
struct string * stringValue(struct element *e)
isc_boolean_t mapContains(const struct element *m, const char *k)
struct string * quote(struct string *s)
size_t listSize(const struct element *l)
struct element * mapGet(struct element *m, const char *k)
int64_t intValue(const struct element *e)
const char * print_numeric_expression(struct element *expr, isc_boolean_t *lose)
const char * print_boolean_expression(struct element *expr, isc_boolean_t *lose)
const char * print_data_expression(struct element *expr, isc_boolean_t *lose)
int expr_precedence(enum expr_op, struct element *)
int is_boolean_expression(struct expression *expr)
int is_numeric_expression(struct expression *expr)
int is_data_expression(struct expression *expr)