summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lisc/parse.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lisc/parse.c b/lisc/parse.c
index 2c25476..1a39db6 100644
--- a/lisc/parse.c
+++ b/lisc/parse.c
@@ -247,15 +247,15 @@ lex()
 	}
 	if (0)
 Alpha:		c = fgetc(inf);
-	if (!isalpha(c) && c != '.')
-		err("lexing failure");
+	if (!isalpha(c) && c != '.' && c != '_')
+		err("lexing failure: invalid character %c (%d)", c, c);
 	i = 0;
 	do {
 		if (i >= NString-1)
 			err("identifier too long");
 		tok[i++] = c;
 		c = fgetc(inf);
-	} while (isalpha(c) || c == '.' || c == '_' || isdigit(c));
+	} while (isalpha(c) || c == '$' || c == '.' || c == '_' || isdigit(c));
 	tok[i] = 0;
 	ungetc(c, inf);
 	if (t != TXXX) {