f337625801
remove most noLocs
2024-02-10 10:14:22 +01:00
1f01cec322
refactor Main a whole lot
2024-02-10 10:14:22 +01:00
103f019dbd
move NDefinition to Quox.Definition and add an untyped one
2024-02-10 10:14:22 +01:00
2cafb35bc1
fix some comments
2024-02-10 10:14:22 +01:00
47069a9316
fill a stray hole
2024-02-10 10:14:22 +01:00
fb14b756c7
add algebraic ornaments to bib
2024-02-10 10:14:22 +01:00
81783dbae0
fix typechecker loop when coercing boxes
...
closes #38
2024-02-10 10:07:06 +01:00
a14c4ca1cb
never inline let bindings from the original source
2023-12-21 18:04:12 +01:00
b7074720ad
pretty printing fixes
2023-12-21 18:03:57 +01:00
48a050491c
fix several quantity issues
...
- contents of box intro
- definition of let
- non-recursive ℕ case
- also make a few var names more consistent
2023-12-21 18:01:17 +01:00
aa4ead592a
allow "let x : A = e in s" with type annotation
2023-12-21 17:54:31 +01:00
54db7e27ef
make #[fail] run in the current namespace
2023-12-21 17:53:46 +01:00
7afcbfe258
recognise nats other than 0 in eq checker
2023-12-21 17:48:12 +01:00
0fdd4741be
print quantity on let
2023-12-07 01:43:39 +01:00
03c197bd04
add local bindings to context
...
- without this, inside the body of `let x = e in …`, the typechecker
would forget that `x = e`
- now bound variables can reduce, if they have a definition, so RedexTest
needs to take the context too
2023-12-07 01:43:39 +01:00
cdf1ec6deb
fix a comment
2023-12-04 23:38:17 +01:00
08a8c694b1
a usage in hello.quox. why not
2023-12-04 23:36:30 +01:00
8b8129027d
update syntax.ebnf
2023-12-04 23:35:54 +01:00
e48f03a61c
multiple semi-sep binds in a let
2023-12-04 23:27:59 +01:00
415a823dec
comment out an unfinished definition lmao
2023-12-04 22:49:32 +01:00
b1699ce022
add let to the core
2023-12-04 22:47:52 +01:00
68d8019f00
add let
to frontend syntax
2023-12-04 18:56:45 +01:00
59e7a457a6
let case be the head of an application too
2023-12-04 18:28:57 +01:00
4291afd51b
allow fst/snd to take multiple arguments
...
also succ though that won't be well typed
2023-12-04 18:21:28 +01:00
e2ad18ff1f
hello.quox tweaks
2023-11-16 18:33:03 +01:00
310822ffa5
remove old replaced stuff
2023-11-16 18:32:38 +01:00
d115672d49
example stuff
2023-11-10 15:07:19 +01:00
cc78ccd940
fix some parenthesisation
2023-11-06 22:11:11 +01:00
50984aa1aa
refactor #[attribute] stuff
2023-11-05 20:49:02 +01:00
246d80eea2
add io.quox
2023-11-05 15:48:01 +01:00
c48b7be559
add html output highlighting
2023-11-05 15:47:52 +01:00
040a1862c3
refactor scheme prelude
2023-11-05 15:45:33 +01:00
bf8cced888
swap some delim/syntax highlighting around
2023-11-05 15:45:07 +01:00
04af7ae942
highlight the @ in dim apps as a delim
2023-11-05 15:44:44 +01:00
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
da3cd404f3
handle when getTermCols returns 0
2023-11-05 15:40:19 +01:00
f58fa5218f
subscript numbers are no longer special
2023-11-05 15:39:52 +01:00
580fbc8fd8
add misc.refl, misc.sing, nat.minus
2023-11-05 15:38:38 +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
d4639a35c6
add hello.quox to examples
2023-11-03 18:05:54 +01:00
b7e1f37b5b
add some #[compile-scheme]
2023-11-03 18:05:54 +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