diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y index 6e594b90cf57c8276101cbd1b2e126f83fd62982..cb23b55eedfa2174d366821ca29f1aadb9a19fcf 100644 --- a/gtests/net/packetdrill/parser.y +++ b/gtests/net/packetdrill/parser.y @@ -599,7 +599,7 @@ static struct tcp_option *new_tcp_fast_open_option(const char *cookie_string, %type <expression_list> expression_list function_arguments %type <expression> expression binary_expression array %type <expression> decimal_integer hex_integer data -%type <expression> inaddr sockaddr msghdr cmsghdr cmsg_level cmsg_type cmsg_data +%type <expression> inaddr sockaddr msghdr cmsghdr cmsg_level cmsg_type cmsg_data %type <expression> iovec pollfd opt_revents %type <expression> linger l_onoff l_linger %type <expression> sctp_status sstat_state sstat_rwnd sstat_unackdata sstat_penddata @@ -3288,17 +3288,7 @@ snd_sid ; snd_flags -: SND_FLAGS '=' INTEGER { - if (!is_valid_u16($3)) { - semantic_error("snd_flags out of range"); - } - $$ = new_integer_expression($3, "%hu"); -} -| SND_FLAGS '=' WORD { - $$ = new_expression(EXPR_WORD); - $$->value.string = $3; -} -| SND_FLAGS '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } +: SND_FLAGS '=' expression { $$ = $3; } ; snd_ppid @@ -3380,17 +3370,7 @@ sinfo_ssn ; sinfo_flags -: SINFO_FLAGS '=' INTEGER { - if (!is_valid_u16($3)) { - semantic_error("sinfo_flags out of range"); - } - $$ = new_integer_expression($3, "%u"); -} -| SINFO_FLAGS'=' WORD { - $$ = new_expression(EXPR_WORD); - $$->value.string = $3; -} -| SINFO_FLAGS '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } +: SINFO_FLAGS '=' expression { $$ = $3; } ; sinfo_ppid @@ -3489,18 +3469,7 @@ serinfo_next_stream ; serinfo_next_flags -: SERINFO_NEXT_FLAGS '=' WORD { - $$ = new_expression(EXPR_WORD); - $$->value.string = $3; -} -| SERINFO_NEXT_FLAGS '=' INTEGER { - if (!is_valid_u16($3)) { - semantic_error("serinfo_next_flags out of range"); - } - $$ = new_integer_expression($3, "%hu"); -} -| SERINFO_NEXT_FLAGS '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } -; +: SERINFO_NEXT_FLAGS '=' expression { $$ = $3; } serinfo_next_aid : SERINFO_NEXT_AID '=' INTEGER { @@ -3532,7 +3501,7 @@ serinfo_next_ppid ; sctp_extrcvinfo -: '{' sinfo_stream ',' sinfo_ssn ',' sinfo_flags ',' sinfo_ppid ',' sinfo_context ',' sinfo_pr_value ',' sinfo_tsn ',' sinfo_cumtsn ',' +: '{' sinfo_stream ',' sinfo_ssn ',' sinfo_flags ',' sinfo_ppid ',' sinfo_context ',' sinfo_pr_value ',' sinfo_tsn ',' sinfo_cumtsn ',' serinfo_next_flags ',' serinfo_next_stream ',' serinfo_next_aid ',' serinfo_next_length ',' serinfo_next_ppid ',' sinfo_assoc_id '}' { $$ = new_expression(EXPR_SCTP_EXTRCVINFO); $$->value.sctp_extrcvinfo = calloc(1, sizeof(struct sctp_extrcvinfo_expr)); @@ -3574,13 +3543,7 @@ rcv_ssn ; rcv_flags -: RCV_FLAGS '=' INTEGER { - if (!is_valid_u16($3)) { - semantic_error("rcv_flags out of range"); - } - $$ = new_integer_expression($3, "%u"); -} -| RCV_FLAGS '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } +: RCV_FLAGS '=' expression { $$ = $3; } ; rcv_ppid @@ -3706,17 +3669,7 @@ nxt_sid ; nxt_flags -: NXT_FLAGS '=' INTEGER { - if (!is_valid_u16($3)) { - semantic_error("nxt_flags out of range"); - } - $$ = new_integer_expression($3, "%u"); -} -| NXT_FLAGS '=' WORD { - $$ = new_expression(EXPR_WORD); - $$->value.string = $3; -} -| NXT_FLAGS '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } +: NXT_FLAGS '=' expression { $$ = $3; } ; nxt_ppid @@ -3729,7 +3682,7 @@ nxt_ppid | NXT_PPID '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } ; -nxt_length +nxt_length : NXT_LENGTH '=' INTEGER { if (!is_valid_u32($3)) { semantic_error("nxt_length out of range"); @@ -3770,7 +3723,7 @@ sctp_recvv_rn } ; -sse_type +sse_type : SSE_TYPE '=' INTEGER { if (!is_valid_u16($3)) { semantic_error("sse_type out of range"); @@ -3784,7 +3737,7 @@ sse_type | SSE_TYPE '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } ; -sse_flags +sse_flags : SSE_FLAGS '=' INTEGER { if (!is_valid_u16($3)) { semantic_error("sse_flags out of range"); @@ -3794,7 +3747,7 @@ sse_flags | SSE_FLAGS '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } ; -sse_length +sse_length : SSE_LENGTH '=' INTEGER { if (!is_valid_u32($3)) { semantic_error("sse_length out of range");