Commit Diff


commit - 9389de63d7b0dab99773511f48b2d303e3f957d7
commit + f1dd3f065a97f57bf59db2e3284868e181734159
blob - 9c5a02f1ef2c1708e10bc2a993b0b6182e1c6155
blob + f634e82d95fb7612e30d8da9c74fa172a3437a55
--- src/cmd/hoc/hoc.y
+++ src/cmd/hoc/hoc.y
@@ -215,8 +215,8 @@ yylex(void)		/* hoc6 */
 		return STRING;
 	}
 	switch (c) {
-	case '+':	return follow('+', INC, follow('=', ADDEQ, '+'));
-	case '-':	return follow('-', DEC, follow('=', SUBEQ, '-'));
+	case '+':	return follow('+', INC, '+') == INC ? INC : follow('=', ADDEQ, '+');
+	case '-':	return follow('-', DEC, '-') == DEC ? DEC : follow('=', SUBEQ, '-');
 	case '*':	return follow('=', MULEQ, '*');
 	case '/':	return follow('=', DIVEQ, '/');
 	case '%':	return follow('=', MODEQ, '%');