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
,
52 /* left or right child */
59 enum ir_load_string_type
{
60 /* Plain, no globbing at all: `hello world`. */
61 IR_LOAD_STRING_TYPE_PLAIN
= 0,
63 /* Star at the end only: `hello *`. */
64 IR_LOAD_STRING_TYPE_GLOB_STAR_END
,
66 /* At least one star, anywhere, but not at the end only: `he*wor*`. */
67 IR_LOAD_STRING_TYPE_GLOB_STAR
,
77 enum ir_load_string_type type
;
87 enum unary_op_type type
;
97 struct ir_op_logical
{
104 /* common to all ops */
106 enum ir_data_type data_type
;
107 enum ir_op_signedness signedness
;
111 struct ir_op_root root
;
112 struct ir_op_load load
;
113 struct ir_op_unary unary
;
114 struct ir_op_binary binary
;
115 struct ir_op_logical logical
;
119 #endif /* _FILTER_IR_H */