}
;
-relational_expression
+and_expression
: shift_expression
{ $$ = $1; }
- | relational_expression LT_OP shift_expression
+ | and_expression AND_BIN shift_expression
+ {
+ $$ = make_op_node(parser_ctx, AST_OP_BIT_AND, $1, $3);
+ }
+ ;
+
+exclusive_or_expression
+ : and_expression
+ { $$ = $1; }
+ | exclusive_or_expression XOR_BIN and_expression
+ {
+ $$ = make_op_node(parser_ctx, AST_OP_BIT_XOR, $1, $3);
+ }
+ ;
+
+inclusive_or_expression
+ : exclusive_or_expression
+ { $$ = $1; }
+ | inclusive_or_expression OR_BIN exclusive_or_expression
+ {
+ $$ = make_op_node(parser_ctx, AST_OP_BIT_OR, $1, $3);
+ }
+ ;
+
+relational_expression
+ : inclusive_or_expression
+ { $$ = $1; }
+ | relational_expression LT_OP inclusive_or_expression
{
$$ = make_op_node(parser_ctx, AST_OP_LT, $1, $3);
}
- | relational_expression GT_OP shift_expression
+ | relational_expression GT_OP inclusive_or_expression
{
$$ = make_op_node(parser_ctx, AST_OP_GT, $1, $3);
}
- | relational_expression LE_OP shift_expression
+ | relational_expression LE_OP inclusive_or_expression
{
$$ = make_op_node(parser_ctx, AST_OP_LE, $1, $3);
}
- | relational_expression GE_OP shift_expression
+ | relational_expression GE_OP inclusive_or_expression
{
$$ = make_op_node(parser_ctx, AST_OP_GE, $1, $3);
}
}
;
-and_expression
- : equality_expression
- { $$ = $1; }
- | and_expression AND_BIN equality_expression
- {
- $$ = make_op_node(parser_ctx, AST_OP_BIT_AND, $1, $3);
- }
- ;
-
-exclusive_or_expression
- : and_expression
- { $$ = $1; }
- | exclusive_or_expression XOR_BIN and_expression
- {
- $$ = make_op_node(parser_ctx, AST_OP_BIT_XOR, $1, $3);
- }
- ;
-
-inclusive_or_expression
- : exclusive_or_expression
- { $$ = $1; }
- | inclusive_or_expression OR_BIN exclusive_or_expression
- {
- $$ = make_op_node(parser_ctx, AST_OP_BIT_OR, $1, $3);
- }
- ;
-
logical_and_expression
- : inclusive_or_expression
+ : equality_expression
{ $$ = $1; }
- | logical_and_expression AND_OP inclusive_or_expression
+ | logical_and_expression AND_OP equality_expression
{
$$ = make_op_node(parser_ctx, AST_OP_AND, $1, $3);
}
SESSION_NAME="valid_filter"
NR_ITER=100
NUM_GLOBAL_TESTS=2
-NUM_UST_TESTS=1098
-NUM_KERNEL_TESTS=1032
+NUM_UST_TESTS=1110
+NUM_KERNEL_TESTS=1044
NUM_TESTS=$(($NUM_UST_TESTS+$NUM_KERNEL_TESTS+$NUM_GLOBAL_TESTS))
source $TESTDIR/utils/utils.sh
"(1<<63) < 0"
true_statement
- "1<<1==2" # C99 operator priority: comparator before bitwise
+ "(1<<2!=4)==0" # operator priority: shift before equality
- has_no_event
- "!(1<<1==2)" # C99 operator priority: comparator before bitwise
+ true_statement
+ "1&3==1" # operator priority: masks before equality
+
+ true_statement
+ "(3|1==3)==1" # operator priority: masks before equality
+
+ true_statement
+ "(2^1==3)==1" # operator priority: masks before equality
true_statement
"(1 << 32) == 4294967296"
"(1<<63) < 0"
true_statement
- "1<<1==2" # C99 operator priority: comparator before bitwise
+ "(1<<2!=4)==0" # operator priority: shift before equality
- has_no_event
- "!(1<<1==2)" # C99 operator priority: comparator before bitwise
+ true_statement
+ "1&3==1" # operator priority: masks before equality
+
+ true_statement
+ "(3|1==3)==1" # operator priority: masks before equality
+
+ true_statement
+ "(2^1==3)==1" # operator priority: masks before equality
true_statement
"(1 << 32) == 4294967296"