summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y13
1 files changed, 10 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index ea0e33f609..d1f1a32321 100644
--- a/parse.y
+++ b/parse.y
@@ -3244,9 +3244,11 @@ yylex()
tokadd(c);
seen_e++;
is_float++;
- if ((c = nextc()) == '-' || c == '+')
+ while ((c = nextc()) == '_')
+ seen_uc = 1;
+ if (c == '-' || c == '+')
tokadd(c);
- else
+ else
continue;
break;
@@ -3628,7 +3630,12 @@ yylex()
}
else {
if (lex_state == EXPR_FNAME) {
- if ((c = nextc()) == '=' && !peek('=') && !peek('~')) {
+#if 0
+ if ((c = nextc()) == '=' && !peek('=') && !peek('~') && !peek('>')) {
+#else
+ if ((c = nextc()) == '=' && !peek('~') && !peek('>') &&
+ (!peek('=') || lex_p + 1 < lex_pend && lex_p[1] == '>')) {
+#endif
result = tIDENTIFIER;
tokadd(c);
}