lint_cmd : LINT_IGNORE lint_ignore_list { $$=new_lint_ignore_cmd($2); } | LINT_EXPECT lint_expect_list { $$=new_lint_expect_cmd($2); } ; lint_expect_list: NAMED { $$=new_str_list(upshift($1)); } | lint_expect_list op_comma NAMED { $$=add_str_list($1,upshift($3)); } ; lint_ignore_list_item: NAMED { sprintf($$,"+%s",$1); } | KW_PLUS NAMED {sprintf($$,"+%s",$2); } | KW_PLUS NAMED KW_DOT NAMED {sprintf($$,"+%s.%s",$2,$4); } | KW_MINUS NAMED {sprintf($$,"-%s",$2); } | KW_MINUS NAMED KW_DOT NAMED {sprintf($$,"-%s.%s",$2,$4); } ; lint_ignore_list: lint_ignore_list_item {$$=new_str_list(upshift($1));} | lint_ignore_list op_comma lint_ignore_list_item { $$=add_str_list($1,upshift($3)); } ;