change some single-character constructor names

This commit is contained in:
rhiannon morris 2023-03-08 16:46:29 +01:00
parent 47fca359f4
commit 88985405ce
3 changed files with 158 additions and 140 deletions

View file

@ -46,97 +46,104 @@ tests = "lexer" :- [
lexes "" [],
lexes " " [],
lexes "-- line comment" [],
lexes "name -- line comment" [I "name"],
lexes "-- line comment\nnameBetween -- and another" [I "nameBetween"],
lexes "name -- line comment" [Name "name"],
lexes "-- line comment\nnameBetween -- and another" [Name "nameBetween"],
lexes "{- block comment -}" [],
lexes "{- {- nested -} block comment -}" []
],
"identifiers & keywords" :- [
lexes "abc" [I "abc"],
lexes "abc def" [I "abc", R "def"],
lexes "abc_def" [I "abc_def"],
lexes "abc-def" [I "abc-def"],
lexes "abc{-comment-}def" [I "abc", R "def"],
lexes "λ" [R "λ"],
lexes "fun" [R "λ"],
lexes "δ" [R "δ"],
lexes "dfun" [R "δ"],
lexes "funky" [I "funky"],
lexes "δελτα" [I "δελτα"],
lexes "★★" [I "★★"],
lexes "Types" [I "Types"],
lexes "a.b.c.d.e" [I $ MakeName [< "a","b","c","d"] "e"],
lexes "normalïse" [I "normalïse"],
lexes "map#" [I "map#"],
lexes "write!" [I "write!"],
lexes "uhh??!?!?!?" [I "uhh??!?!?!?"],
lexes "abc" [Name "abc"],
lexes "abc def" [Name "abc", Reserved "def"],
lexes "abc_def" [Name "abc_def"],
lexes "abc-def" [Name "abc-def"],
lexes "abc{-comment-}def" [Name "abc", Reserved "def"],
lexes "λ" [Reserved "λ"],
lexes "fun" [Reserved "λ"],
lexes "δ" [Reserved "δ"],
lexes "dfun" [Reserved "δ"],
lexes "funky" [Name "funky"],
lexes "δελτα" [Name "δελτα"],
lexes "★★" [Name "★★"],
lexes "Types" [Name "Types"],
lexes "a.b.c.d.e" [Name $ MakeName [< "a","b","c","d"] "e"],
lexes "normalïse" [Name "normalïse"],
-- ↑ replace i + combining ¨ with precomposed ï
lexes "map#" [Name "map#"],
lexes "write!" [Name "write!"],
lexes "uhh??!?!?!?" [Name "uhh??!?!?!?"],
todo "check for reserved words in a qname",
-- lexes "abc.fun.def" [I "abc", R ".", R "λ", R ".", I "def"],
{-
lexes "abc.fun.def"
[Name "abc", Reserved ".", Reserved "λ", Reserved ".", Name "def"],
-}
lexes "+" [I "+"],
lexes "*" [I "*"],
lexes "**" [R "×"],
lexes "***" [I "***"],
lexes "+**" [I "+**"],
lexes "+#" [I "+#"],
lexes "+.+.+" [I $ MakeName [< "+", "+"] "+"],
lexes "a.+" [I $ MakeName [< "a"] "+"],
lexes "+.a" [I $ MakeName [< "+"] "a"],
lexes "+" [Name "+"],
lexes "*" [Name "*"],
lexes "**" [Reserved "×"],
lexes "***" [Name "***"],
lexes "+**" [Name "+**"],
lexes "+#" [Name "+#"],
lexes "+.+.+" [Name $ MakeName [< "+", "+"] "+"],
lexes "a.+" [Name $ MakeName [< "a"] "+"],
lexes "+.a" [Name $ MakeName [< "+"] "a"],
lexes "+a" [I "+", I "a"],
lexes "+a" [Name "+", Name "a"],
lexes "x." [I "x", R "·"],
lexes "&." [I "&", R "·"],
lexes ".x" [R "·", I "x"],
lexes "a.b.c." [I $ MakeName [< "a", "b"] "c", R "·"],
lexes "x." [Name "x", Reserved "·"],
lexes "&." [Name "&", Reserved "·"],
lexes ".x" [Reserved "·", Name "x"],
lexes "a.b.c." [Name $ MakeName [< "a", "b"] "c", Reserved "·"],
lexes "case" [R "case"],
lexes "caseω" [R "caseω"],
lexes "case#" [R "caseω"],
lexes "case1" [R "case1"],
lexes "case0" [I "case0"],
lexes "case##" [I "case##"],
lexes "case" [Reserved "case"],
lexes "caseω" [Reserved "caseω"],
lexes "case#" [Reserved "caseω"],
lexes "case1" [Reserved "case1"],
lexes "case0" [Name "case0"],
lexes "case##" [Name "case##"],
lexes "_" [R "_"],
lexes "_a" [I "_a"],
lexes "a_" [I "a_"],
lexes "_" [Reserved "_"],
lexes "_a" [Name "_a"],
lexes "a_" [Name "a_"],
lexes "a'" [I "a'"],
lexes "+'" [I "+'"]
lexes "a'" [Name "a'"],
lexes "+'" [Name "+'"]
],
"syntax characters" :- [
lexes "()" [R "(", R ")"],
lexes "(a)" [R "(", I "a", R ")"],
lexes "(^)" [R "(", I "^", R ")"],
lexes "{a,b}" [R "{", I "a", R ",", I "b", R "}"],
lexes "{+,-}" [R "{", I "+", R ",", I "-", R "}"]
lexes "()" [Reserved "(", Reserved ")"],
lexes "(a)" [Reserved "(", Name "a", Reserved ")"],
lexes "(^)" [Reserved "(", Name "^", Reserved ")"],
lexes "{a,b}"
[Reserved "{", Name "a", Reserved ",", Name "b", Reserved "}"],
lexes "{+,-}"
[Reserved "{", Name "+", Reserved ",", Name "-", Reserved "}"]
],
"tags" :- [
lexes #" 'a "# [T "a"],
lexes #" 'abc "# [T "abc"],
lexes #" '+ "# [T "+"],
lexes #" '$$$ "# [T "$$$"],
lexes #" 'tag.with.dots "# [T "tag.with.dots"],
lexes #" '"multi word tag" "# [T "multi word tag"],
lexes #" '"" "# [T ""],
lexes #" 'a "# [Tag "a"],
lexes #" 'abc "# [Tag "abc"],
lexes #" '+ "# [Tag "+"],
lexes #" '$$$ "# [Tag "$$$"],
lexes #" 'tag.with.dots "# [Tag "tag.with.dots"],
lexes #" '"multi word tag" "# [Tag "multi word tag"],
lexes #" '"" "# [Tag ""],
lexFail #" ' "#,
lexFail #" '' "#
],
"strings" :- [
lexes #" "" "# [S ""],
lexes #" "abc" "# [S "abc"],
lexes #" "\"" "# [S "\""],
lexes #" "\\" "# [S "\\"],
lexes #" "\\\"" "# [S "\\\""],
lexes #" "" "# [Str ""],
lexes #" "abc" "# [Str "abc"],
lexes #" "\"" "# [Str "\""],
lexes #" "\\" "# [Str "\\"],
lexes #" "\\\"" "# [Str "\\\""],
todo "other escapes"
],
todo "naturals",
"universes" :- [
lexes "Type0" [TYPE 0],
lexes "Type₀" [TYPE 0],
@ -144,7 +151,7 @@ tests = "lexer" :- [
lexes "★₀" [TYPE 0],
lexes "★₆₉" [TYPE 69],
lexes "★4" [TYPE 4],
lexes "Type" [R ""],
lexes "" [R ""]
lexes "Type" [Reserved ""],
lexes "" [Reserved ""]
]
]