diff -r fd6a64c53f0e -r f71399fe3fdc progs/lexer/lex.sc --- 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