Commit graph

287 commits

Author SHA1 Message Date
d9cdf1306d fix IsReserved
IsReserved should be true for e.g. "λ" but not "fun", since only the
first can show up in the lexer output
2023-11-05 15:43:20 +01:00
6c8ebfb804 fix some comments 2023-11-05 15:41:21 +01:00
f58fa5218f subscript numbers are no longer special 2023-11-05 15:39:52 +01:00
e211887a34 string/nat lit stuff 2023-11-05 15:38:13 +01:00
3b9a339e5e rename "Tag" highlight to "Constant" 2023-11-05 14:30:40 +01:00
2f8a2d2cd2 fix typo in error 2023-11-04 17:45:55 +01:00
b6c435049d escape strings in scheme
the characters \, ", and everything below space or above ~ are replaced
with a \xdd;-style escape inside string literals
2023-11-03 20:17:35 +01:00
90cdcfe4da add \n and \t escapes to the lexer 2023-11-03 20:07:59 +01:00
5dfefe443c more tidying of outputs 2023-11-03 18:05:54 +01:00
0514fff481 represent ℕ constants directly
instead of as huge `succ (succ (succ ⋯))` terms
2023-11-03 18:05:54 +01:00
fa7f82ae5a rename Nat to NAT in AST 2023-11-03 18:05:54 +01:00
e0ed37720f always vsep scheme lets, otherwise they are unreadable 2023-11-03 18:05:54 +01:00
050346e344 add postulate, #[compile-scheme], #[main] 2023-11-03 18:05:54 +01:00
cc0bade747 scheme output 2023-11-03 18:05:54 +01:00
cd08a0fd98 more erasure 2023-11-03 18:05:54 +01:00
314e7f036d make nat elimination with erased IH non-recursive at runtime 2023-11-03 18:05:54 +01:00
6ab9637ab5 don't keep erased applications actually 2023-11-03 18:05:54 +01:00
b6fd1e921e pretty printing improvements 2023-11-03 18:05:54 +01:00
f4a45b6c52 keep the Except effect at the start of the list 2023-11-03 18:05:54 +01:00
8e0d66cab8 more erasure 2023-11-03 18:05:54 +01:00
ea74c148b7 some of this EffExtra stuff doesn't work 2023-11-03 18:05:54 +01:00
83ab871d61 new main 2023-11-03 18:05:54 +01:00
421eb220fd erasure refactor 2023-11-03 18:05:54 +01:00
fbb862c88b %default total 2023-11-03 18:05:54 +01:00
b651ed5447 LoadFile does the parsing 2023-11-03 18:05:54 +01:00
d6985cad55 tweak the pretty printer stuff slightly 2023-11-03 18:05:54 +01:00
52e54dcc3c add PrettyVal stuff for parser AST 2023-11-03 18:05:54 +01:00
0c1df54d62 improve handling of context lengths 2023-11-03 18:05:54 +01:00
2e9183bc14 add prettyDef 2023-11-03 18:05:54 +01:00
428397f42b erasure to untyped syntax 2023-11-03 18:05:54 +01:00
0b7bd0ef46 add locations and substitutions to untyped syntax 2023-11-03 18:05:54 +01:00
9cbd998d6f simplify isEmpty and isSubSing 2023-11-03 18:05:54 +01:00
6896c8fcc4 rename SQtys to sg (σ) 2023-11-03 18:05:54 +01:00
be8797a3ef untyped λ calculus syntax 2023-11-03 18:05:54 +01:00
69f032584e fix constructor name in comment 2023-11-03 17:56:42 +01:00
f04c4619ef detect reserved words inside names like 'a.λ.b' 2023-09-24 17:36:26 +02:00
d4de74eab6 change it to #[..] since # is also reserved 2023-09-22 18:38:40 +02:00
8395bec4cb check for duplicate cases in enum matches 2023-09-22 18:37:53 +02:00
d4cfbd4045 add @[fail] modifier to declarations
- `@[fail] def foo = ...` succeeds if `foo` has some error.
- `@[fail "scope"] def foo = ...` succeeds if `foo` has some error
  containing the word "scope" somewhere
- `@[fail] namespace foo { }` works too and the error must be anywhere
  in the namespace
2023-09-22 14:03:22 +02:00
ea674503c0 export PushSubsts, oops 2023-09-20 21:58:55 +02:00
b1eefb0f4d move prettyTag to Quox.Pretty 2023-09-20 21:58:42 +02:00
ee22486e97 rename BindName.name to .val 2023-09-20 21:58:27 +02:00
08fb686bf6 move Scoped to separate module 2023-09-20 21:58:04 +02:00
cf3ed604a4 move Quox.Syntax.Var to just Quox.Var 2023-09-20 21:56:59 +02:00
4704dd0441 remove on-hold dir 2023-09-20 21:55:03 +02:00
dc076b636d fix warnings 2023-09-19 18:13:45 +02:00
80b1b3581a use ST from base 2023-09-19 13:05:01 +02:00
ebde478adc add η for pairs in zero contexts 2023-09-19 00:41:17 +02:00
bb8d2464af add fst and snd 2023-09-18 21:53:38 +02:00
e6c06a5c81 pass the subject quantity through equality etc
in preparation for non-linear η laws
2023-09-18 21:53:38 +02:00