STATIC void
S_checkcomma(pTHX_ register char *s, char *name, char *what)
{
char *w;
if (*s == ' ' && s[1] == '(') { /* XXX gotta be a better way */
if (ckWARN(WARN_SYNTAX)) {
int level = 1;
for (w = s+2; *w && level; w++) {
if (*w == '(')
++level;
else if (*w == ')')
--level;
}
if (*w)
for (; *w && isSPACE(*w); w++) ;
if (!*w || !strchr(";|})]oaiuw!=", *w)) /* an advisory hack only... */
Perl_warner(aTHX_ WARN_SYNTAX,
"%s (...) interpreted as function",name);
}
}
# [the S_checkcomma function continues from here with an unrelated syntax check]
####
STATIC void
S_checkcomma(pTHX_ register char *s, char *name, char *what)
{
char *w;
if (*s == ' ' && s[1] == '(') { /* XXX gotta be a better way */
####
if (ckWARN(WARN_SYNTAX)) {
####
int level = 1;
for (w = s+2; *w && level; w++) {
if (*w == '(')
++level;
else if (*w == ')')
--level;
}
####
if (*w)
for (; *w && isSPACE(*w); w++) ;
####
if (!*w || !strchr(";|})]oaiuw!=", *w)) /* an advisory hack only... */
####
Perl_warner(aTHX_ WARN_SYNTAX,
"%s (...) interpreted as function",name);
}
}
####
print (/\)/); # warning
print (/./); # no warning
print ("hey))"); # no warning
print ("hey")&&1; # warning
print ("hey")||1; # no warning