Support for alternative string quotes (a"xx", b"xx", c"xx", ...).

This commit is contained in:
Guido van Rossum 1997-04-06 03:46:20 +00:00
parent 5f5e817e00
commit 24dacb38c5
1 changed files with 9 additions and 4 deletions

View File

@ -538,9 +538,12 @@ tok_get(tok, p_start, p_end)
/* Identifier (most frequent token!) */
if (isalpha(c) || c == '_') {
do {
c = tok_nextc(tok);
if (c == '"' || c == '\'')
goto letter_quote;
while (isalnum(c) || c == '_') {
c = tok_nextc(tok);
} while (isalnum(c) || c == '_');
}
tok_backup(tok, c);
*p_start = tok->start;
*p_end = tok->cur;
@ -640,9 +643,11 @@ tok_get(tok, p_start, p_end)
*p_end = tok->cur;
return NUMBER;
}
letter_quote:
/* String */
if (c == '\'' || c == '"') {
char *quote2 = tok->cur+1;
int quote = c;
int triple = 0;
int tripcount = 0;
@ -663,7 +668,7 @@ tok_get(tok, p_start, p_end)
}
else if (c == quote) {
tripcount++;
if (tok->cur == tok->start+2) {
if (tok->cur == quote2) {
c = tok_nextc(tok);
if (c == quote) {
triple = 1;