progs/lexer/lex.sc
changeset 1019 f71399fe3fdc
parent 1010 adc61c55e165
child 1020 36799f7b9702
--- a/progs/lexer/lex.sc	Fri Oct 24 11:26:43 2025 +0100
+++ b/progs/lexer/lex.sc	Fri Oct 31 11:25:14 2025 +0000
@@ -99,7 +99,7 @@
   case Right(v) => env(v)
   case Sequ(v1, v2) => env(v1) ::: env(v2)
   case Stars(vs) => vs.flatMap(env)
-  case Rec[A](x, v) => (x, flatten(v))::env(v)  
+  case Rec(x: A, v) => (x, flatten(v))::env(v)  
 }
 
 
@@ -177,20 +177,20 @@
 
 
 extension (t: TAGS) {
-  def $ (r: Rexp) = RECD[TAGS](t, r)
+  def & (r: Rexp) = RECD[TAGS](t, r)
 }
 
 def lexing(r: Rexp, s: String) = 
   env[TAGS](lex(r, s.toList))
 
-val WHILE_REGS = ((Key $ KEYWORD) | 
-                  (Id $ ID) | 
-                  (Op $ OP) | 
-                  (Num $ NUM) | 
-                  (Semi $ SEMI) | 
-                  (Str $ STRING) |
-                  (Paren $ (LPAREN | RPAREN)) | 
-                  (Wht $ WHITESPACE)).%
+val WHILE_REGS = ((Key & KEYWORD) | 
+                  (Id & ID) | 
+                  (Op & OP) | 
+                  (Num & NUM) | 
+                  (Semi & SEMI) | 
+                  (Str & STRING) |
+                  (Paren & (LPAREN | RPAREN)) | 
+                  (Wht & WHITESPACE)).%
 
 
 // Two Simple While Tests