summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/parse.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/lisc/parse.c b/lisc/parse.c
index dd8f67f..a1b27d3 100644
--- a/lisc/parse.c
+++ b/lisc/parse.c
@@ -119,6 +119,14 @@ lex()
 		return TRParen;
 	case '=':
 		return TEq;
+	case '%':
+		t = TVar;
+		c = fgetc(inf);
+		goto Alpha;
+	case '@':
+		t = TLbl;
+		c = fgetc(inf);
+		goto Alpha;
 	case '#':
 		while (fgetc(inf) != '\n')
 			;
@@ -145,14 +153,8 @@ lex()
 		tokval.num *= sgn;
 		return TNum;
 	}
-	if (c == '%') {
-		t = TVar;
-		c = fgetc(inf);
-	} else if (c == '@') {
-		t = TLbl;
-		c = fgetc(inf);
-	} else
-		t = TXXX;
+	t = TXXX;
+Alpha:
 	if (!isalpha(c))
 		err("lexing failure");
 	i = 0;