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