projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
parser_proc_grammar.y
diff --git
a/src/parser_proc_grammar.y
b/src/parser_proc_grammar.y
index c076abd0e5a630f1db8c78e2fd5fd5d10a144a8c..7a3cf55f7dbef3bef88b8751abc3f5727619e832 100644
(file)
--- a/
src/parser_proc_grammar.y
+++ b/
src/parser_proc_grammar.y
@@
-1,5
+1,9
@@
%code top {
%code top {
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
}
%code {
}
%code {
@@
-2321,15
+2325,26
@@
static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens
psi_plist_get(tokens, last, &T);
if (T) {
psi_plist_get(tokens, last, &T);
if (T) {
-
in
t i = (last >= 5) ? last - 5 : 0;
+
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) {
P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
while (i <= last || T->type != PSI_T_EOS) {
+ const char *pos;
+
if (!psi_plist_get(tokens, i++, &T)) {
break;
}
if (!psi_plist_get(tokens, i++, &T)) {
break;
}
+
+ if (i < last + 1) {
+ pos = "preceding";
+ } else if (i > last + 1) {
+ pos = "following";
+ } else {
+ pos = "offending";
+ }
+
P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
-
i<last+1?"preceding":i>last+1?"following":"offending", T->text->val, T->col
);
+
pos, T ? T->text->val : "<deleted>", T ? T->col : 0
);
}
} else {
P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
}
} else {
P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);