X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fparser_proc_grammar.y;h=fc0b75210aad1c9bee15ec96aa19f11745804624;hb=f077a911ab3d74c43a6316d745e885446820e7bf;hp=6dbac472f7da04413a97cf79265e287d745572d1;hpb=a7ac1c0a3c855321f21682c127a4b707de33a303;p=m6w6%2Fext-psi diff --git a/src/parser_proc_grammar.y b/src/parser_proc_grammar.y index 6dbac47..fc0b752 100644 --- a/src/parser_proc_grammar.y +++ b/src/parser_proc_grammar.y @@ -1,5 +1,4 @@ %code top { -#include "php_psi_stdinc.h" } %code { @@ -2321,7 +2320,16 @@ static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens psi_plist_get(tokens, last, &T); if (T) { + size_t i = (last >= 5) ? last - 5 : 0; + P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col); + while (i <= last || T->type != PSI_T_EOS) { + if (!psi_plist_get(tokens, i++, &T)) { + break; + } + P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u", + ilast+1?"following":"offending", T->text->val, T->col); + } } else { P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg); }