diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y @@ -329,8 +329,8 @@ yybegin(YYS_CLAUSE); } | probe_specifiers DT_TOK_DIV expression DT_TOK_EPRED { - dnerror($3, D_SYNTAX, "expected actions { } following " - "probe description and predicate\n"); + $$ = dt_node_clause($1, $3, NULL); + yybegin(YYS_CLAUSE); } | probe_specifiers DT_TOK_DIV expression DT_TOK_EPRED '{' statement_list '}' { diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l @@ -500,7 +500,8 @@ break; } - if (c == 0 || c == ';' || c == '{' || c == '/') { + if (c == 0 || c == ';' || c == '{' || c == '/' || + c == EOF) { if (yypcb->pcb_parens != 0) { yyerror("closing ) expected in " "predicate before /\n");