Commit Graph

556 Commits

Author SHA1 Message Date
rhiannon morris 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
rhiannon morris 6c8ebfb804 fix some comments 2023-11-05 15:41:21 +01:00
rhiannon morris da3cd404f3 handle when getTermCols returns 0 2023-11-05 15:40:19 +01:00
rhiannon morris f58fa5218f subscript numbers are no longer special 2023-11-05 15:39:52 +01:00
rhiannon morris 580fbc8fd8 add misc.refl, misc.sing, nat.minus 2023-11-05 15:38:38 +01:00
rhiannon morris e211887a34 string/nat lit stuff 2023-11-05 15:38:13 +01:00
rhiannon morris 3b9a339e5e rename "Tag" highlight to "Constant" 2023-11-05 14:30:40 +01:00
rhiannon morris 2f8a2d2cd2 fix typo in error 2023-11-04 17:45:55 +01:00
rhiannon morris 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
rhiannon morris 90cdcfe4da add \n and \t escapes to the lexer 2023-11-03 20:07:59 +01:00
rhiannon morris d4639a35c6 add hello.quox to examples 2023-11-03 18:05:54 +01:00
rhiannon morris b7e1f37b5b add some #[compile-scheme] 2023-11-03 18:05:54 +01:00
rhiannon morris 5dfefe443c more tidying of outputs 2023-11-03 18:05:54 +01:00
rhiannon morris 0514fff481 represent ℕ constants directly
instead of as huge `succ (succ (succ ⋯))` terms
2023-11-03 18:05:54 +01:00
rhiannon morris fa7f82ae5a rename Nat to NAT in AST 2023-11-03 18:05:54 +01:00
rhiannon morris e0ed37720f always vsep scheme lets, otherwise they are unreadable 2023-11-03 18:05:54 +01:00
rhiannon morris 4cc50c6bcd highlight errors even if real output is to a file
(unless told not to)
2023-11-03 18:05:54 +01:00
rhiannon morris 050346e344 add postulate, #[compile-scheme], #[main] 2023-11-03 18:05:54 +01:00
rhiannon morris cc0bade747 scheme output 2023-11-03 18:05:54 +01:00
rhiannon morris cd08a0fd98 more erasure 2023-11-03 18:05:54 +01:00
rhiannon morris 1f14e4ab9e automate more option stuff
if the elaborator writes it then it will be kept up to date
automatically
2023-11-03 18:05:54 +01:00
rhiannon morris 314e7f036d make nat elimination with erased IH non-recursive at runtime 2023-11-03 18:05:54 +01:00
rhiannon morris 6ab9637ab5 don't keep erased applications actually 2023-11-03 18:05:54 +01:00
rhiannon morris b6fd1e921e pretty printing improvements 2023-11-03 18:05:54 +01:00
rhiannon morris f4a45b6c52 keep the Except effect at the start of the list 2023-11-03 18:05:54 +01:00
rhiannon morris 8e0d66cab8 more erasure 2023-11-03 18:05:54 +01:00
rhiannon morris ea74c148b7 some of this EffExtra stuff doesn't work 2023-11-03 18:05:54 +01:00
rhiannon morris 83ab871d61 new main 2023-11-03 18:05:54 +01:00
rhiannon morris 421eb220fd erasure refactor 2023-11-03 18:05:54 +01:00
rhiannon morris fbb862c88b %default total 2023-11-03 18:05:54 +01:00
rhiannon morris b651ed5447 LoadFile does the parsing 2023-11-03 18:05:54 +01:00
rhiannon morris d6985cad55 tweak the pretty printer stuff slightly 2023-11-03 18:05:54 +01:00
rhiannon morris 52e54dcc3c add PrettyVal stuff for parser AST 2023-11-03 18:05:54 +01:00
rhiannon morris 0c1df54d62 improve handling of context lengths 2023-11-03 18:05:54 +01:00
rhiannon morris 2e9183bc14 add prettyDef 2023-11-03 18:05:54 +01:00
rhiannon morris 428397f42b erasure to untyped syntax 2023-11-03 18:05:54 +01:00
rhiannon morris 0b7bd0ef46 add locations and substitutions to untyped syntax 2023-11-03 18:05:54 +01:00
rhiannon morris 9cbd998d6f simplify isEmpty and isSubSing 2023-11-03 18:05:54 +01:00
rhiannon morris 6896c8fcc4 rename SQtys to sg (σ) 2023-11-03 18:05:54 +01:00
rhiannon morris be8797a3ef untyped λ calculus syntax 2023-11-03 18:05:54 +01:00
rhiannon morris bf605486f0 example updates
- misc.All doesn't need to be a ★¹
- add pair.map-fst and pair.map-snd
- add bool.dup!
- tweak quantities in eta.from-false
- add fail.quox to all.quox
- add qty.quox
2023-11-03 18:05:35 +01:00
rhiannon morris 69f032584e fix constructor name in comment 2023-11-03 17:56:42 +01:00
rhiannon morris 9ecaaf72bd bump pack collection 2023-10-22 19:18:38 +02:00
rhiannon morris f04c4619ef detect reserved words inside names like 'a.λ.b' 2023-09-24 17:36:26 +02:00
rhiannon morris d4de74eab6 change it to #[..] since # is also reserved 2023-09-22 18:38:40 +02:00
rhiannon morris bcfb0d81b8 update tests 2023-09-22 18:38:32 +02:00
rhiannon morris 8395bec4cb check for duplicate cases in enum matches 2023-09-22 18:37:53 +02:00
rhiannon morris 6153b4f7f8 add a couple of failing examples 2023-09-22 14:03:22 +02:00
rhiannon morris 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
rhiannon morris ea674503c0 export PushSubsts, oops 2023-09-20 21:58:55 +02:00