--- 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