diff --git a/lib/Quox/Parser/Lexer.idr b/lib/Quox/Parser/Lexer.idr index 6eb86ac..22f5f6b 100644 --- a/lib/Quox/Parser/Lexer.idr +++ b/lib/Quox/Parser/Lexer.idr @@ -185,7 +185,7 @@ reserved = Sym "∷" `Or` Sym "::", Punc1 '.', Word1 "case", - Word1 "case1", + Word1 "case0", Word1 "case1", Word "caseω" `Or` Word "case#", Word1 "return", Word1 "of", diff --git a/lib/Quox/Parser/Parser.idr b/lib/Quox/Parser/Parser.idr index fe7d804..aaafdc7 100644 --- a/lib/Quox/Parser/Parser.idr +++ b/lib/Quox/Parser/Parser.idr @@ -165,7 +165,7 @@ lamIntro = symbolsC [(Lam, "λ"), (DLam, "δ")] private covering caseIntro : Grammar True Qty -caseIntro = symbols [(One, "case1"), (Any, "caseω")] +caseIntro = symbols [(Zero, "case0"), (One, "case1"), (Any, "caseω")] <|> resC "case" *> (qty <* resC "." <|> fatalError {c = True} "missing quantity on 'case'") diff --git a/tests/Tests/Lexer.idr b/tests/Tests/Lexer.idr index c4b4c96..118ba5e 100644 --- a/tests/Tests/Lexer.idr +++ b/tests/Tests/Lexer.idr @@ -100,7 +100,7 @@ tests = "lexer" :- [ lexes "caseω" [Reserved "caseω"], lexes "case#" [Reserved "caseω"], lexes "case1" [Reserved "case1"], - lexes "case0" [Name "case0"], + lexes "case0" [Reserved "case0"], lexes "case##" [Name "case##"], lexes "_" [Reserved "_"],