9 * Copyright 2012 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
11 * This library is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU Lesser General Public License, version 2.1 only,
13 * as published by the Free Software Foundation.
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with this library; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 #include "filter-ast.h"
27 enum ir_op_signedness
{
31 IR_SIGN_DYN
, /* signedness determined dynamically */
37 IR_DATA_NUMERIC
, /* numeric and boolean */
40 IR_DATA_GET_CONTEXT_REF
,
41 IR_DATA_FIELD_REF_INDEX
,
42 IR_DATA_GET_CONTEXT_REF_INDEX
,
54 /* left or right child */
61 enum ir_load_string_type
{
62 /* Plain, no globbing at all: `hello world`. */
63 IR_LOAD_STRING_TYPE_PLAIN
= 0,
65 /* Star at the end only: `hello *`. */
66 IR_LOAD_STRING_TYPE_GLOB_STAR_END
,
68 /* At least one star, anywhere, but not at the end only: `he*wor*`. */
69 IR_LOAD_STRING_TYPE_GLOB_STAR
,
79 enum ir_load_string_type type
;
93 enum unary_op_type type
;
103 struct ir_op_logical
{
110 /* common to all ops */
112 enum ir_data_type data_type
;
113 enum ir_op_signedness signedness
;
117 struct ir_op_root root
;
118 struct ir_op_load load
;
119 struct ir_op_unary unary
;
120 struct ir_op_binary binary
;
121 struct ir_op_logical logical
;
125 #endif /* _FILTER_IR_H */