Fix SF bug #1072182, problems with signed characters.

Most of these can be backported.
diff --git a/Parser/grammar.c b/Parser/grammar.c
index c0613df..d8e3897 100644
--- a/Parser/grammar.c
+++ b/Parser/grammar.c
@@ -180,7 +180,8 @@
 	}
 	
 	if (lb->lb_type == STRING) {
-		if (isalpha((int)(lb->lb_str[1])) || lb->lb_str[1] == '_') {
+		if (isalpha(Py_CHARMASK(lb->lb_str[1])) ||
+		    lb->lb_str[1] == '_') {
 			char *p;
 			char *src;
 			char *dest;